第3章-组合电路的Verilog设计汇总课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章-组合电路的Verilog设计汇总课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组合 电路 Verilog 设计 汇总 课件
- 资源描述:
-
1、 E D A技术与应用第第3章章 组合电路的组合电路的Verilog设计设计 E D A技术与应用3.1 半加器电路的半加器电路的Verilog描述描述半加器的电路结构半加器的电路结构半加器的仿真功能波形图半加器的仿真功能波形图ABSOCO0000011010101101半加器的真值表半加器的真值表半加器逻辑表达式:半加器逻辑表达式:和:和:SO=A0A1进位进位:CO=A0A1 E D A技术与应用 例例3-1:半加器:半加器 module h_adder (A, B, SO, CO);input A, B;output SO, CO;assign SO=AB;/将变量将变量A和和B执行异或
2、逻辑后执行异或逻辑后 将结果赋值给输出信号将结果赋值给输出信号SOassign CO=A&B;/将变量将变量A和和B执行执行与与逻辑后将逻辑后将 结果结果赋值给赋值给输出信号输出信号COendmodule 以关键词以关键词module_endmodule引导的完整的电路模块或称引导的完整的电路模块或称“模块模块”描述。模块对应着硬件电路上的描述。模块对应着硬件电路上的逻辑实体逻辑实体(也称实例(也称实例Instance) 以以关键词关键词input和和output引导的对模块的引导的对模块的外部端口外部端口描述语句。描描述语句。描述电路器件的述电路器件的端口状况端口状况及及信号性质信号性质,如
3、信号流动方向和信号的,如信号流动方向和信号的数据类型等。数据类型等。 以关键词以关键词assign引导的引导的赋值语句赋值语句,用于描述模块的,用于描述模块的逻辑功能逻辑功能和和电路结构电路结构。三个组成部分:三个组成部分: E D A技术与应用 任何一可综合的最基本模块都必须以关键词任何一可综合的最基本模块都必须以关键词module开头开头。 module右侧(空一格或多格)是右侧(空一格或多格)是模块名模块名,模块名属于标示符,模块名属于标示符,由设计者自定。(由设计者自定。(不应用数字或中文定义,也不应用与不应用数字或中文定义,也不应用与EDA工工具库中已定义好的关键词或元件名作为模块名
4、,且不能用数字具库中已定义好的关键词或元件名作为模块名,且不能用数字起头起头) 模块名右侧的括号称为模块名右侧的括号称为模块端口列表模块端口列表,列出此模块,列出此模块所有输入、所有输入、输出或双向端口名输出或双向端口名,端口名间用,端口名间用逗号分开逗号分开,右侧,右侧括号外加分号括号外加分号。 endmodule是模块是模块结束结束语句,不加任何标点符号。对模块端口语句,不加任何标点符号。对模块端口和功能的描述语句必须放在和功能的描述语句必须放在module_endmodule之间。之间。1、模块、模块语句及其表达方式语句及其表达方式 module 模块名模块名 (模块端口名表);(模块端
5、口名表);模块端口和模块功能描述模块端口和模块功能描述endmodule E D A技术与应用 对端口名表中的端口进行定义对端口名表中的端口进行定义。 端口关键词:端口关键词:input,output,inout 端口关键词旁的端口名可以有多个,逗号分开,最后加分号。端口关键词旁的端口名可以有多个,逗号分开,最后加分号。 前三前三种描述了标量位,最后一种描述了逻辑矢量位。种描述了标量位,最后一种描述了逻辑矢量位。例例: output 3:0 C, D; /定义两个定义两个4位位宽的总线端口输出信号位位宽的总线端口输出信号C3:0(等同于定义了四个单个位信号(等同于定义了四个单个位信号C3、C2
6、、C1、C0)和)和D3:02、端口语句、端口信号名和端口模式、端口语句、端口信号名和端口模式input 端口名端口名1,端口名,端口名2,;/输入端口输入端口output 端口端口名名1,端口名,端口名2,; /输出端口输出端口inout 端口端口名名1,端口名,端口名2,; /双向端口双向端口input msb : lsb 端口端口名名1,端口名,端口名2,; /多信号端口多信号端口 或总线端口或总线端口 -逻辑矢量位逻辑矢量位 标标量量位位最高位数最高位数最低位数最低位数 E D A技术与应用 input:输入端口输入端口。单向只读模式,数据只能由此端口被读入模。单向只读模式,数据只能由
7、此端口被读入模块实体中。块实体中。 output:输出端口输出端口。单向输出模式,数据只能通过此端口从模。单向输出模式,数据只能通过此端口从模块实体向外流出,即将此模块中数据向此端口赋值。块实体向外流出,即将此模块中数据向此端口赋值。 inout:双向端口双向端口。输入输出双向端口,从端口内部看,可对此。输入输出双向端口,从端口内部看,可对此端口进行赋值,或通过此端口读入外部的数据信息;从端口外端口进行赋值,或通过此端口读入外部的数据信息;从端口外部看,信号既可由此端口流出,又可向此端口输入信号。部看,信号既可由此端口流出,又可向此端口输入信号。2、端口语句、端口信号名和端口模式、端口语句、端
8、口信号名和端口模式input 端口名端口名1,端口名,端口名2,;/输入端口输入端口output 端口端口名名1,端口名,端口名2,; /输出端口输出端口inout 端口端口名名1,端口名,端口名2,; /双向端口双向端口input msb : lsb 端口端口名名1,端口名,端口名2,; /多信号端口多信号端口 或总线端口或总线端口 -逻辑矢量位逻辑矢量位 标标量量位位最高位数最高位数最低位数最低位数 E D A技术与应用 :逻辑异或。:逻辑异或。 &:逻辑与。:逻辑与。3、逻辑操作符、逻辑操作符AB/A、B异或异或A&B /A、B相与相与 E D A技术与应用 assign是连续赋值命名的
9、关键词。是连续赋值命名的关键词。 等号右侧的驱动表达式中的等号右侧的驱动表达式中的任一信号变量发生变化任一信号变量发生变化时,此时,此表达表达式被计算一遍式被计算一遍,并将获得的数据,并将获得的数据立即赋给立即赋给等号左侧的变量名所等号左侧的变量名所标示的目标变量。标示的目标变量。 驱动的含义是强调表达式的本质是对于目标变量的激励源或赋驱动的含义是强调表达式的本质是对于目标变量的激励源或赋值源。值源。 assign引导的赋值语句是引导的赋值语句是并行赋值并行赋值语句。语句。4、连续赋值语句、连续赋值语句assign 目标变量名目标变量名= 驱动表达式;驱动表达式;并行执行并行执行:语句是同时执
10、行的,与先后次序无关。:语句是同时执行的,与先后次序无关。顺序执行顺序执行:按照语句的前后排列方式逐条顺序执行:按照语句的前后排列方式逐条顺序执行的的。 E D A技术与应用 方括号表示,括号中的内容是可以选择使用的。方括号表示,括号中的内容是可以选择使用的。 任何时刻,等式右侧的任何时刻,等式右侧的“驱动表达式驱动表达式”中中任一变量发生变化任一变量发生变化时时立立即计算出此表达式即计算出此表达式的值,经过指定的的值,经过指定的延时时间后再赋值延时时间后再赋值给左侧的给左侧的目标变量。目标变量。 延时延时值用于值用于Verilog Test Bench程序中进行仿真,在综合器中延时程序中进行
11、仿真,在综合器中延时值被忽略,值被忽略,不参与综合不参与综合。例例: timescale 10ns/100ps;/设置仿真的基本时间单元是设置仿真的基本时间单元是10ns, 仿真时间精度仿真时间精度100psassign #6 R1=A&B;/6个时间单元后将结果赋值给目标变量个时间单元后将结果赋值给目标变量4、连续赋值语句、连续赋值语句assign 延时延时 目标变量名目标变量名= 驱动表达式;驱动表达式; E D A技术与应用 Verilog语言语言预先定义好预先定义好的有特殊含义的英文词语。的有特殊含义的英文词语。 Verilog规定所有关键词必须规定所有关键词必须小写小写。5、关键词、
12、关键词 设计者在设计者在Verilog程序中程序中自定义自定义的,用于标识不同名称的词语,的,用于标识不同名称的词语,如模块名、信号名、端口名等。如模块名、信号名、端口名等。 标识符标识符区分大小写区分大小写。6、标识符、标识符 E D A技术与应用 注释符号注释符号“/”,用于,用于隔离程序隔离程序,添加程序,添加程序说明文字说明文字。本身。本身无功无功能含义能含义。 “/”后的注释文字后的注释文字只能放在同一行只能放在同一行。 另一另一种注释符号种注释符号“/*/”类似一个括号,只要文字在此类似一个括号,只要文字在此“括号括号”中就中就可以换行可以换行。7、注释符号、注释符号 可以一行写多
13、条语句,或分行书写。可以一行写多条语句,或分行书写。 建议最顶层建议最顶层module_endmodule模块描述语句放在最左侧,比他模块描述语句放在最左侧,比他低一层次的描述语句靠右一个低一层次的描述语句靠右一个Tab键距离,同一语句的关键词对键距离,同一语句的关键词对齐(如齐(如module_endmodule、table_endtable、begin_end等)。等)。8、规范的程序书写格式、规范的程序书写格式 E D A技术与应用 文件名可由设计者任意给定,文件后缀扩展名必须是文件名可由设计者任意给定,文件后缀扩展名必须是“.v”。 建议程序的建议程序的文件名与文件名与该程序的该程序的
14、模块名一致模块名一致(对于(对于Quartus II必须必须满足这一点)。满足这一点)。 文件名文件名区分大小写区分大小写(对于(对于Quartus II文件名与程序模块名的大小文件名与程序模块名的大小写必须一致)。写必须一致)。 文件名文件名不应该用中文或数字不应该用中文或数字来命名。来命名。 进入工程设计的进入工程设计的Verilog程序必须存入某文件夹中,不要存在根目程序必须存入某文件夹中,不要存在根目录内或桌面上。录内或桌面上。9、文件取名和存盘、文件取名和存盘 E D A技术与应用 例例3-1:半加器:半加器 module h_adder (A, B, SO, CO);input A
15、, B;output SO, CO;assign SO=AB;/将变量将变量A和和B执行异或逻辑后执行异或逻辑后 将结果赋值给输出信号将结果赋值给输出信号SOassign CO=A&B;/将变量将变量A和和B执行执行与与逻辑后将逻辑后将 结果结果赋值给赋值给输出信号输出信号COendmodule 以关键词以关键词module_endmodule引导的完整的电路模块或称引导的完整的电路模块或称“模块模块”描述。模块对应着硬件电路上的描述。模块对应着硬件电路上的逻辑实体逻辑实体(也称实例(也称实例Instance) 以以关键词关键词input和和output引导的对模块的引导的对模块的外部端口外部
16、端口描述语句。描描述语句。描述电路器件的述电路器件的端口状况端口状况及及信号性质信号性质,如信号流动方向和信号的,如信号流动方向和信号的数据类型等。数据类型等。 以关键词以关键词assign引导的引导的赋值语句赋值语句,用于描述模块的,用于描述模块的逻辑功能逻辑功能和和电路结构电路结构。三个组成部分:三个组成部分: E D A技术与应用3.2 多路选择器多路选择器的的Verilog描述描述4选选1多路多路选择器选择器4选选1多路选择器多路选择器MUX41a的时序波形的时序波形3.2.1 4选选1多路选择器及多路选择器及case语句表述方式语句表述方式输入输入端口端口通道选择控通道选择控制信号端
17、制信号端输出输出端口端口s1s0y00a01b10c11d真值表真值表 E D A技术与应用 例例3-2:4选选1多路选择器多路选择器 module MUX41a (a, b, c, d, s1, s0, y); input a, b, c, d; input s1, s0; output y; reg y; /信号类型定义段信号类型定义段 always (a or b or c or d or s1 or s0)begin : MUX41 /块语句开始块语句开始 case(s1,s0)2b00: y=a; 2b01: y=b; 2b10: y=c; 2b11: y=d; default: y
18、=a;endcase endendmodule 电电路路模模块块端端口口说说明明和和定定义义端端Verilog 具具体体描描述述电电路路功功能能的的语语句句 电电路路模模块块功功能能描描述述段段Verilog 表表述述的的可可综综合合的的完完整整电电路路模模块块 E D A技术与应用 以关键词以关键词reg定义的定义的模块内相关信号的特性和数据类型模块内相关信号的特性和数据类型。 以关键词以关键词always引导的引导的对模块逻辑功能描述的顺序语句对模块逻辑功能描述的顺序语句。 以以case_endcase引导的引导的多条件分支赋值语句多条件分支赋值语句。 以以begin_end引导引导的的顺
19、序语句块顺序语句块。 Verilog数据并位数据并位及及数据表达方式数据表达方式。五种新的语句结构和表述方式:五种新的语句结构和表述方式: 例例3-2: E D A技术与应用 用于定义用于定义寄存器型寄存器型数据类型的变量。数据类型的变量。 Verilog中最常用的变量:中最常用的变量: 寄存器型寄存器型变量变量:表示暂时存储数据的变量(并不一定表示硬:表示暂时存储数据的变量(并不一定表示硬件中的物理寄存器)。关键词是件中的物理寄存器)。关键词是reg;需要定义某信号为寄存需要定义某信号为寄存器型变量时,必须器型变量时,必须显性定义显性定义;被赋值的信号在过程语句;被赋值的信号在过程语句alw
20、ays引导引导的的语句(语句(具有时序执行的特点,习惯上称行为语具有时序执行的特点,习惯上称行为语句)中规定必须是句)中规定必须是reg型变量。不能作为逻辑门输出或者型变量。不能作为逻辑门输出或者assign语句输出。语句输出。 网线网线性变量性变量:进程之间的物理互连。常用关键词是:进程之间的物理互连。常用关键词是wire;默默认定义认定义为为wire型;型;assign引导的赋值语句左侧的目标信号的类引导的赋值语句左侧的目标信号的类型必须是网线型型必须是网线型wire。 输入端口输入端口信号信号不能不能定义为寄存器型信号类型。定义为寄存器型信号类型。1、reg型变量定义型变量定义reg 变
21、量名变量名1,变量名,变量名2,; /一位变量一位变量reg msb: lsb 变量名变量名1,变量名,变量名2,; /矢量型变量矢量型变量 E D A技术与应用 Verilog-2001版本允许在版本允许在端口名表中端口名表中直接对端口变量直接对端口变量定义矢定义矢量量(总线形式),甚至定义端口的(总线形式),甚至定义端口的数据类型数据类型。例例: module seg_7 (input 3:0 num, input en, output reg 6:0 seg); /定义输入端口定义输入端口num是一个是一个4位矢量,定义位矢量,定义en为一位的输入端为一位的输入端口,定义输出端口口,定义
22、输出端口seg是一个寄存器数据类型是一个寄存器数据类型 的的7位总线。位总线。1、reg型变量定义型变量定义reg 变量名变量名1,变量名,变量名2,; /一位变量一位变量reg msb: lsb 变量名变量名1,变量名,变量名2,; /矢量型变量矢量型变量 E D A技术与应用 Verilog中有两类能引导顺序语句的过程语句,一类是中有两类能引导顺序语句的过程语句,一类是always语句,语句,另一类是另一类是initial语句。语句。 任何顺序语句都必须放在过程语句结构中。任何顺序语句都必须放在过程语句结构中。 以关键词以关键词always引导,右侧的括号及括号中所列的信号或表达式引导,右
23、侧的括号及括号中所列的信号或表达式都属于敏感信号,过程语句中都属于敏感信号,过程语句中所有输入信号都放在敏感信号表所有输入信号都放在敏感信号表中。中。 敏感信号表述方式敏感信号表述方式: 用关键词用关键词or连接所有敏感信号(每当其中一个或多个信号发生连接所有敏感信号(每当其中一个或多个信号发生变化时,都启动变化时,都启动过程过程语句,执行一遍此结构中的所有程序语语句,执行一遍此结构中的所有程序语句。句。) 用用逗号区分逗号区分所有敏感信号。所有敏感信号。 省略形式省略形式(默认过程语句中敏感信号表中列全了所有应该被列(默认过程语句中敏感信号表中列全了所有应该被列入的信号,写成入的信号,写成a
24、lways (*)或或always *)。)。2、过程语句、过程语句always (敏感信号及敏感信号列表或表达式)(敏感信号及敏感信号列表或表达式)包括块语句的各类顺序语句包括块语句的各类顺序语句 E D A技术与应用 以关键词以关键词begin_end引导,本身没有功能,仅限于在引导,本身没有功能,仅限于在always引导的引导的过程语句结构中使用,类似于一个过程语句结构中使用,类似于一个括号括号,括号中的语句都被认定,括号中的语句都被认定归属于同一操作模块。归属于同一操作模块。 此此语句不可综合,只能用于仿真。语句不可综合,只能用于仿真。 若某若某 一语句结构中仅包含一语句结构中仅包含一
25、条语句一条语句,且无需定义局部变量时,块,且无需定义局部变量时,块语句被默认使用,即语句被默认使用,即无需显式无需显式定义块,可省略。定义块,可省略。 若包含若包含多条语句多条语句(包括含有局部变量定义的单条语句),则必须(包括含有局部变量定义的单条语句),则必须用用begin_end的的显式显式结构将它们结构将它们“括括”起来。起来。 “:块名:块名”可用于注释当前块的特征,综合时不参加编译,可省可用于注释当前块的特征,综合时不参加编译,可省略。略。3、块语句、块语句begin_endbegin : 块名块名语句语句1;语句;语句2;语句;语句n;end E D A技术与应用 case语句的
展开阅读全文