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

原创 2016年08月31日 12:33:59

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 更多博文,请浏览:http://www.aobosir.com/

FPGA Verilog HDL 系列实例--------半加器与全加器

Verilog HDL 之 半加器与全加器 一、原理   算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。 1、半加器   半加法和全加法是算术运算电路中的基本单元,它们是完成1...
  • li_qcxy
  • li_qcxy
  • 2012年12月13日 21:48
  • 2356

编写的全加器与半加器的代码

问题: 编写全加器与半加器代码 代码: 半加器(利用逻辑语言编写) #include int main() { int s,c; int a,b; for(int i=0;...
  • qq_34216631
  • qq_34216631
  • 2016年10月10日 19:07
  • 1121

Verilog实例(经典135例)

  • 2009年09月08日 15:33
  • 127KB
  • 下载

verilog HDL经典程序实例135例

  • 2010年07月23日 10:03
  • 155KB
  • 下载

Verilog HDL 快速入门

Verilog HDL 快速入门Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),它是以文本形式来描述数字系统硬件的结构和行为的语言。 ...
  • Alexanderrr
  • Alexanderrr
  • 2016年06月08日 21:25
  • 2786

verilog 入门教程

verilog 入门教程   2011-07-23 10:21:15|  分类: Verilog | 1.1 什么是Verilog HDL? 1.2 Verilo...
  • caojunjun12345
  • caojunjun12345
  • 2014年06月16日 11:14
  • 6285

Verilog_HDL教程.pdf

  • 2012年03月12日 12:54
  • 4.73MB
  • 下载

verilog 实现加法器

verilog 实现加法器 (1)半加器的实现 原理:半加器是由两个一位输入实现的,与全加器的区别是不带进位加,相对比较简单,其逻辑关系为:  进位输出:Ci+1=Ai*Bi  和输出:Si = Ai...
  • w40306030072
  • w40306030072
  • 2014年03月07日 12:06
  • 5298

Verilog 语言经典入门书籍 夏宇闻编写

  • 2014年03月30日 14:12
  • 1.73MB
  • 下载

VHDL入门

verilog感觉掌握的还不错了。最近准备学习一下VHDL。 了解了一下,VHDL的一个重要特征是具有描述大量同时发生的时间的能力。大量时间同时发生是数字系统工作时所具有的内在特征,这些时间被称为并...
  • u010277881
  • u010277881
  • 2014年07月31日 16:10
  • 1987
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Verilog 语言 001 --- 入门级 --- 编写一个半加器电路模块
举报原因:
原因补充:

(最多只允许输入30个字)