关闭

Verilog 语言 001 --- 入门级 --- 编写一个半加器电路模块

标签: verilog半加器模块EDAmodule
16909人阅读 评论(0) 收藏 举报
分类:

Verilog 语言编写一个 半加器 电路模块

半加器 的电路结构:

S = A 异或 B 
C = A 与 B

这里写图片描述

1. 程序代码

module h_adder (A, B, SO, CO);
    input A, B;
    output SO, CO;
    assign SO = A ^ B;
    assign CO = A & B;
endmodule

2. 解释程序代码

  1. 关键词 moduleendmodule 就像一个括号({}),任何一个功能模块的描述都必须放在此 “括号” 里面。
  2. h_adder 是模块的名字,名字自定义。
  3. h_adder 后面的括号和括号里的内容叫做:外部端口表。括号里面的内容:A, B, SO, CO,就是这个模块中所有 外部端口外部端口的名字自定义,类似 C语言 函数的形参。如果将这段程序比喻成一个电路的话,那么外部端口就是这个电路中引出的引脚。
  4. 使用 inputoutput 等关键字来定义 外部端口A, B, SO, CO)的属性。
    inputoutput 等关键字叫做:端口关键词。如果 外部端口 是输出引脚,就定义为:output;如果 外部端口 是输入引脚,就定义为:input;如果 外部端口 是输入输出引脚,就定义为:inout
  5. 以关键字 assign 引导的语句,是描述这个模块(当前例子的模块名为:h_adder)的逻辑功能和电路结构。简单的说,实现功能的语句使用关键字 assign 来修饰。

这样的一个模块程序,就相当于一个具有某种功能的电路模块硬件。比如:上面这段代码的功能就是 半加器 这个电路的功能。

3. 程序代码中需要注意的几点

  1. 模块的名字(h_adder),在命名的时候,需要注意:名称不能使用数字开头;不能出现中文;不能与EDA软件库中已定义好的关键词或元件名相同,比如:or2latch等。
  2. 除了 endmodule 语句不需要,其他的每条语句都使用 分号(;) 做为结束。
  3. 定义外部端口时,端口关键词(inputoutputinout等)后面可以定义多个外部端口,端口名之间使用逗号(,)相隔,最后加上 分号(;)。

4. 程序模板

模块语句的一般格式如下:

module 模块名 外部端口表 ;
    定义外部端口属性
    模块的功能描述
endmodule

参考:
《EDA技术实用教程 — Verilog HDL版(第五版)》 3.1节 P59

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3680676次
    • 积分:28278
    • 等级:
    • 排名:第206名
    • 原创:296篇
    • 转载:0篇
    • 译文:0篇
    • 评论:73条
    Aobo Sir
    ROS机器人
    ROS、OpenCV、OpenNI、Numpy、Python、Blender、PCL、ARM、Linux、嵌入式、机器学习、智能科学与技术、自动化、Qt、Arduino、raspberrypi、C/C++
    黑客
    运用Python成为顶级黑客
    博客专栏
    最新评论