VerilogHDL介绍

上传人:M****1 文档编号:569992937 上传时间:2024-08-01 格式:PPT 页数:86 大小:11.34MB
返回 下载 相关 举报
VerilogHDL介绍_第1页
第1页 / 共86页
VerilogHDL介绍_第2页
第2页 / 共86页
VerilogHDL介绍_第3页
第3页 / 共86页
VerilogHDL介绍_第4页
第4页 / 共86页
VerilogHDL介绍_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《VerilogHDL介绍》由会员分享,可在线阅读,更多相关《VerilogHDL介绍(86页珍藏版)》请在金锄头文库上搜索。

1、Verilog HDL Verilog HDL 第一章第一章Verilog简介简介 第二章第二章Verilog速成指南速成指南 第三章第三章Verilog语言要素语言要素 第四章第四章Verilog设计进阶设计进阶 第一章 Verilog简介 HDL主要类型是什么Verilog Verilog历史 Verilog与VHDL的比较 Verilog的主要能力 HDL主要类型 VHDL “Tell me how your circuit should behave and I will give you the hardware that does the job.” Verilog HDL Sim

2、ilar to VHDL ABEL-HDL、AHDL(Altera HDL) “Tell me what hardware you want and I will give it to you” 硬件C语言:SystemC、Handle-C 什么是Verilog Verilog HDL是硬件描述语言的一种,是硬件描述语言的一种,用于用于数字电子系统设计。设计者可用它数字电子系统设计。设计者可用它进行进行各种级别的逻辑设计,可用它进行各种级别的逻辑设计,可用它进行数字数字逻辑系统的仿真验证、时序分析和逻辑系统的仿真验证、时序分析和逻辑逻辑综合。它是目前应用最广泛的一种综合。它是目前应用最广泛的一

3、种硬件硬件描述语言。描述语言。 设计中心 Verilog历史 Verilog HDL是在1983年,由GDA(Gateway Design Automation)公司的Phil Moorby首创的。Phil Moorby后 来成为Verilog-XL的主要设计者和Cadence公司的第一 个合伙人。 在19841985年间,Moorby设计出了第一个关于 Verilog-XL的仿真器。 1989年,Cadence公司收购了GDA公司, Verilog HDL 语言成为Cadence公司的私有财产。 1990年,Cadence公司决定公开发表Verilog HDL语言, 于是成立了OVI组织来负

4、责Verilog HDL语言的发展。 基于Verilog HDL的优越性,IEEE于1995年制定了 Verilog HDL的IEEE标准,即IEEE std 13641995。 Verilog 与VHDL的比较 从推出过程来看,从推出过程来看,VHDL偏重于标准化的偏重于标准化的 考虑,而考虑,而Verilog HDL与与EDA工具的结合工具的结合 更为紧密。更为紧密。 VHDL是国际上第一个标准化的是国际上第一个标准化的HDL语言语言 (1987年年IEEE-1076),是为了实现美国国),是为了实现美国国 防部防部VHSIC计划推出的计划推出的 Verilog HDL则是在则是在EDA供

5、应商供应商Cadence扶扶持下针对持下针对EDA工具开发的工具开发的HDL语言。语言。 Verilog 与VHDL的比较(续) Verilog HDL的编程风格比的编程风格比VHDL更加简更加简 洁明了、高效便捷。如果单纯从描述洁明了、高效便捷。如果单纯从描述结构结构上上考察,两者的代码之比约为考察,两者的代码之比约为1:3。 Verilog HDL也于也于1995年实现了标准化年实现了标准化 (IEEE-1364)。)。目前市场上所有的目前市场上所有的 EDA工具都支持这两种语言。而在工具都支持这两种语言。而在ASIC 设计领设计领域,域,Verilog HDL占有明显优势。占有明显优势。

6、 Verilog的主要能力 1.1.基本基本逻辑门逻辑门:内置:内置and、or、nand等等 2.创建创建的灵活性(组合逻辑、时序逻辑)的灵活性(组合逻辑、时序逻辑) 3.3.开关开关级基本结构模型级基本结构模型:内置内置pmos、nmos等等4.4.端端口到端口时延、路径时延、设计的时口到端口时延、路径时延、设计的时序检查序检查 Verilog的主要能力 5.5.三三种描述方式种描述方式:行为行为描述、数据流、结构化描述、数据流、结构化 6.6.提供提供两类数据类型两类数据类型:线线网类型、寄存器类型网类型、寄存器类型 7.7.能够能够描述多层次设计(结构描述)描述多层次设计(结构描述)

7、8.8.设计设计规模可大可小规模可大可小 Verilog的主要能力(续) 人机对话人机对话方便方便(设计者与设计者与EDA工具间交互)工具间交互) 设计能在多个抽象级别上描述设计能在多个抽象级别上描述:开关开关级、门级、级、门级、RTL(Register Transfer Level)级、算法级等级、算法级等 能够使用内置开关级原语对设计完整能够使用内置开关级原语对设计完整建模建模Verilog的主要能力(续) 人机对话方便(设计者与人机对话方便(设计者与EDA工具间交互)工具间交互) 设计能在多个抽象级别上描述:开关级、门级、设计能在多个抽象级别上描述:开关级、门级、 RTL(Registe

8、r Transfer Level)级、算法级等级、算法级等 能够使用内置开关级原语对设计完整建模能够使用内置开关级原语对设计完整建模 可以可以创建测试激励创建测试激励Testbench 在行为级描述中能运用:在行为级描述中能运用:RTL、结构、算法、结构、算法 内置逻辑函数:如内置逻辑函数:如&(按位与)(按位与)、|(按位或)(按位或) 高级语言结构:高级语言结构:if语句、语句、case语语句、循环语句句、循环语句 Verilog的主要能力(续) 可以可以创建测试激励创建测试激励Testbench 在行为级描述中能运用在行为级描述中能运用:RTL、结构、算法结构、算法 内置内置逻辑函数逻辑

9、函数:如如&(按位与)、(按位与)、|(按位或)(按位或) 高级高级语言结构语言结构:if语句、语句、case语句、循环语句语句、循环语句 第二章第二章 Verilog速成指南速成指南 Verilog主要参考书主要参考书 Verilog的基本描述的基本描述单位单位: : -module时延时延 Verilog主要描述方式主要描述方式 Verilog的仿真与测试的仿真与测试 Verilog主要参考书 Verilog HDL硬件描述语言硬件描述语言 (美)(美)J.Bhasker 著,徐振林等译,著,徐振林等译, 机械机械工业出版社,工业出版社,2000 Verilog HDL数字系统设计及其应用

10、数字系统设计及其应用, 袁俊泉等编著,西电出版社,袁俊泉等编著,西电出版社,2002 硬件描述语言硬件描述语言 (第四版第四版) , Phil Moorby 等著,刘明业等译,等著,刘明业等译, 清华大清华大学出版社,学出版社,2001 Verilog的基本描述单位的基本描述单位 module module_name (port_list); port declarations data type declarations circuit functionality endmodule 注意:所有的注意:所有的关键字关键字都小写。都小写。 【例1】半加器的module module HalfA

11、dder ( A, B, sum, carry); inputA, B ; outputsum, carry ; assign #2 sum = A B ; assign #5 carry = A & B ; endmodule 半加器 sum=AB carry = AB A carry sum B 关于时关于时延延 assign #2sum = A B ; #2指2个时间单位 时延可以细分为两种类型: 1)语句间时延:语句执行的时延 sum = (A B) Cin; #4T1 = A & Cin; 2)语句内时延语句内时延: 右边右边数值计算与左边赋值间的时延数值计算与左边赋值间的时延 su

12、m = #3 (A B) Cin; 关于时延(续) 时间单位时间单位通过编译指令与物理时间相关联通过编译指令与物理时间相关联 timescale 1ns/100ps ; 即:时延时间单位为即:时延时间单位为1ns,时间精度为,时间精度为 100ps 时间精度时间精度 #5.21 / 对应对应5.2ns #6.17 / 对应对应6.2ns Verilog主要描述方式主要描述方式 数据流描述方式数据流描述方式 行为行为描述方式描述方式 结构结构化描述方式化描述方式 数据流描述方式数据流描述方式 最基本的建模机制:最基本的建模机制:连续赋值语句连续赋值语句 连续赋值语句基本语法:连续赋值语句基本语法

13、: assign #delay 线网变量线网变量 = 表达式表达式; 如:如: assign #2 sum = A B ; 其中其中delay为语句内时延,缺省时延为为语句内时延,缺省时延为0。 组合逻辑电路的行为最好使用连续赋值语组合逻辑电路的行为最好使用连续赋值语 句建模句建模 【例2】2- 4解码器电路 Z0 Z1 Z2 Z3 N0 A V0 N1 B V1 N2 N3 EN timescale 1ns/1ns moduleDecoder2x4 (A, B, EN, Z) ; input A, B, EN ; output 0:3 Z ; /端口说明 wire Abar, Bbar ;

14、/数据类型说明 assign #1 Abar = A ; /连续赋值语句 assign #1 Bbar = B ; assign #2 Z0 = (Abar & Bbar & EN) ; assign #2 Z1 = (Abar & B & EN) ; assign #2 Z2 = (A & Bbar & EN) ; assign #2 Z3 = (A & B & EN) ; endmodule 行为描述方式行为描述方式 行为行为功能常使用下述过程语句结构描述:功能常使用下述过程语句结构描述: 1) initial语句语句:此语句只执行一次;:此语句只执行一次; Used to initial

15、ize behavioral statements for simulation(Not supported by synthesis) 2) always语句语句:此语句总是循环执行。:此语句总是循环执行。 Used to describe the circuit functionality using behavioral statements 【例3】1位全加器电路(always)Module Fulladder (A, B, Cin, Sum, Cout) ; input A, B, Cin ; output Sum, Cout ; reg Sum, Cout ; reg T1, T2

16、, T3 ; /数据类型说明 always (A or B or Cin) begin Sum = (A B) Cin ; T1 = A & B ; T2 = A & Cin ; T3 = B & Cin ; Cout = (T1 | T2) | T3 ; end / 多条语句时必须要begin-end endmodule Module Fulladder (A, B, Cin, Sum, Cout) ; input A, B, Cin ; output Sum, Cout ; reg Sum, Cout ; reg T1, T2, T3 ; /数据类型说明 always (A or B or

17、 Cin) begin Sum = (A B) Cin ; T1 = A & B ; T2 = A & Cin ; T3 = B & Cin ; Cout = (T1 | T2) | T3 ; end / 多条语句时必须要begin-end endmodule 【例4】initial语句示例 timescale 1ns / 1ns module test (pop, pid) ; output pop, pid ; /端口说明端口说明 reg pop, pid ; /数据类型说明数据类型说明 initial begin pop = 0 ; pid = 0 ; pop = #5 1 ; pid

18、= #3 1 ; pop = #6 0 ; pid = #2 0 ; end endmodule 结构化描述方式结构化描述方式 在在Verilog HDL中可使用如下方式描述结构中可使用如下方式描述结构: : 1)内置门原语内置门原语( (在门级在门级) ); 2)开关级原语开关级原语( (在晶体管级在晶体管级) ); 3)用户定义的原语用户定义的原语UDP( (在门级在门级) ); 4)模块实例模块实例( (创建层次结构创建层次结构) )。 通过使用线网来相互连接。通过使用线网来相互连接。 【例5】用内置门用内置门原语原语描述的全加器电路描述的全加器电路module full_adder(A

19、, B, Cin, Sum,Cout );input A, B,Cin; output Sum, Cout; wire S1, T1, T2, T3 ; /线网类型变量线网类型变量 xor X1 (S1, A, B) , X2 (Sum, S1, Cin ) ; /标点符号标点符号 and A1 (T1, A, B ) , A2 (T2, A, Cin ) , A3 (T3, B, Cin ) ; orO1 (Cout, T1, T2, T3 ) ; endmodule 【例6】4位全加器电路的结构描述module FourBitFA (FA, FB, FCin, FSum, FCout )

20、; Parameter SIZE = 4; input SIZE:1 FA, FB;outputSIZE:1 FSum;input FCin ; output FCout; wire 1:SIZE-1 FTemp; Full_Adder FA1 (FA1, FB1, FCin, FSum1, FTemp1), FA2 (FA2, FB2, FTemp1,FSum2, FTemp2), FA3 (FA3, FB3, FTemp2, FSum3), FTemp3); FA4 (FA4, FB4, FTemp3, FSum4, Fcout);endmodule 【例【例7 7】混合描述方式】混合描述

21、方式module FA_Mix (A, B, Cin, Sum, Cout) ; input A, B, Cin; output Sum, Cout; reg T1, T2, T3, Cout; wire S1; xorX1(S1, A, B); / 门实例语句。 always(A or B or Cin) / always 语句beginT1 = A & Cin; T2 = B & Cin; T3 = A & B;Cout = (T1 | T2) | T3; end Assign Sum = S1 Cin; / 连续赋值语句。 endmoduleVerilog的仿真与测试 VerilogHD

22、LVerilogHDL不仅提供描述设计的能力,不仅提供描述设计的能力, 而且提供对激励、控制、存储响应和而且提供对激励、控制、存储响应和设设计计验证的建模能力。激励和控制可用验证的建模能力。激励和控制可用初初始化始化语句语句( (initialinitial) )产生。产生。 RS_FF电路设计描述 timescale 1 ns / 1 ns Module RS_FF (Q, Qbar, R, S) ; output Q, Qbar; input R, S; nor #1 (Q, R, Qbar); nor #1 (Qbar, S, Q) ; endmodule 注释注释 在在Verilog

23、HDLVerilog HDL中有两种形式的注中有两种形式的注释。释。 1) /*1) /*第一种形式:可以扩展至第一种形式:可以扩展至多行多行*/ */ 2) /2) /第二种形式:在本行结束。第二种形式:在本行结束。 系统任务(系统任务(tasktask)与函数()与函数(functionfunction) 以以$ $字符开始字符开始的标识符表示系统任务或系统函数。的标识符表示系统任务或系统函数。 任务任务提供了一种封装行为的机制。这种机制可在提供了一种封装行为的机制。这种机制可在设设计的计的不同部分被调用。任务可以不同部分被调用。任务可以返回返回0 0个或多个值个或多个值。 函数函数除只能

24、除只能返回一个值返回一个值以外与任务相同。以外与任务相同。 此外,函数在此外,函数在0 0时刻执行,即不允许延迟,而任务时刻执行,即不允许延迟,而任务可以带有可以带有延迟。延迟。 编译指令 以以 (反引号)(反引号)开始的某些标识符是编译器指令。开始的某些标识符是编译器指令。 在在VerilogVerilog语言编译时,特定的编译器指令在整个语言编译时,特定的编译器指令在整个 编译过程中有效(编译过程可跨越多个文件),编译过程中有效(编译过程可跨越多个文件), 直到遇到其它的不同编译程序指令。直到遇到其它的不同编译程序指令。 例如:例如: timescale define, undef inc

25、lude timescale在在Verilog HDL模型中,所有时延都用单位时间表述。使模型中,所有时延都用单位时间表述。使用用timescale编译器指令将编译器指令将时间单位时间单位与与实际实际 时间时间相关联。相关联。该指令用于定义该指令用于定义时延单位时延单位和和时延精度时延精度。timescale编译器指令格式为:编译器指令格式为:timescale time_unit / time_ precision/ / time_unit和和time_precision由值由值1、10、和、和100以及单位以及单位s、ms、us、ns、ps和和fs组成。例如:组成。例如:timescale

26、 1 ns / 100 ps /表示时延单位为表示时延单位为1 1ns, ns, 时延精度为时延精度为100 ps。 timescale编译器指令在模块说明外部出现编译器指令在模块说明外部出现, , 并且影响后面所有的时延值。并且影响后面所有的时延值。 define, undef define指令用于文本替换,它很像指令用于文本替换,它很像C C语言语言中中的的# #define define 指令,如指令,如: : define SIZE 32 regSIZE -1:0 AddReg; 一旦一旦define指令被编译,其在整个编译过程指令被编译,其在整个编译过程中都有效。例如,通过另一个文件

27、中的中都有效。例如,通过另一个文件中的define指令指令,SIZESIZE能被多个文件使用。能被多个文件使用。 undef指令取消前面定义的宏。例如指令取消前面定义的宏。例如: : define WORD 16/建立一个文本建立一个文本宏宏 wire WORD : 1 Bus; undef WORD / / / 在在 undefundef编译指令后编译指令后, , WORDWORD的宏定义不再有效的宏定义不再有效. . include include编译器指令用于嵌入内嵌文件的编译器指令用于嵌入内嵌文件的 内容。文件既可以用相对路径名定义,也可内容。文件既可以用相对路径名定义,也可 以用全路

28、径名定义以用全路径名定义, , 例如例如: : include . ./. ./primitives.v /编译时,这一行由文件编译时,这一行由文件“ . ./. ./primitives.v” 的内容替代的内容替代。 值集合值集合 VerilogHDLVerilogHDL有内置了下列四种基本的值:有内置了下列四种基本的值: 1)1) 0 0:逻辑:逻辑0 0或或“假假” 2)2) 1 1:逻辑:逻辑1 1或或“真真” 3) 3) x x:未知未知 4)4) z z:高阻高阻 x x值和值和z z值都是不分大小写的。值都是不分大小写的。 即即:值:值0 0x1zx1z与值与值0 0X1ZX1Z

29、相同。相同。 Verilog HDL中有三类常量 1)1)整型整型 2)2)实数型实数型 3)3)字符串型字符串型 下划线符号(下划线符号(_ _)可以随意用在整数)可以随意用在整数或或实数实数中,它们就数量本身没有意义。中,它们就数量本身没有意义。它们它们 能用来提高易读性;唯一的限能用来提高易读性;唯一的限制是制是下划线下划线符号不能用作为首字符。符号不能用作为首字符。 整型数整型数 整型数可以按如下两种方式书写:整型数可以按如下两种方式书写: 1)1)简单的十进制数格式简单的十进制数格式 32 -15 32 -15 2)2)基数表示法基数表示法 格式格式 size size base v

30、alue base value 例如例如:55O O3737 / 5 / 5位位八八进制数进制数 4 4 D D2 2 /4 4位位十十进制数进制数 4 4 B B1x_01 1x_01 / 4/ 4位位二二进制数进制数 8 8 h h2 A2 A / / 8 8位位十六十六进制数进制数 实数实数 整型数可以按如下两种方式书写:整型数可以按如下两种方式书写: 1)1)十进制计数法十进制计数法 3.2 5.678 2. 0.1 3.2 5.678 2. 0.1 2)2)科学计数法科学计数法 例如:例如:23_5.123_5.1e e2 2/ 23510.0 / 23510.0 3.63.6E E

31、2 2 /360.0 (e360.0 (e与与E E相同相同) ) 5 5e e-3 -3 / 0.005 / 0.005 字符串字符串 字符串是字符串是双引号双引号内的字符序列。内的字符序列。 字符串字符串不能不能分成多行书写。分成多行书写。 例如例如: : INTERNAL ERROR INTERNAL ERROR REACHED REACHEDHERE HERE 数据类型数据类型 Verilog HDL 有两大类数据类型。有两大类数据类型。 1)1)线网类型线网类型。net type 表示表示Verilog结构化元件结构化元件间的间的物理物理连线连线。它的值由驱动元件的值决定,。它的值由

32、驱动元件的值决定,例如例如: :连续赋值或门的输出。连续赋值或门的输出。 如果没有驱动元件连接到线网,线网的缺省值如果没有驱动元件连接到线网,线网的缺省值为为z z。 2)2)寄存器类型寄存器类型。register type表示一个抽象的表示一个抽象的数数据据存储存储单元单元,它,它只能只能在在always语句和语句和initial语句语句中被赋值,并且它的值从一个赋值到另一个赋中被赋值,并且它的值从一个赋值到另一个赋值被保存值被保存下来下来。寄存器类型的变量具有。寄存器类型的变量具有x x的缺省的缺省值。值。 线网类型线网类型 寄存器类型寄存器类型 操作符操作符Verilog HDL中的操作

33、符可以分为下述类型:中的操作符可以分为下述类型: 1)1) 算术操作符算术操作符 2) 2) 按位操作符按位操作符3) 3) 相等操作符相等操作符 4) 4) 逻辑操作符逻辑操作符 5) 5) 关系操作符关系操作符6) 6) 移位操作符移位操作符 7) 7) 条件操作符条件操作符8) 8) 连接和复制操作符连接和复制操作符 第四章第四章 Verilog设计进阶设计进阶 门电平模型化门电平模型化 UDP 行为建模行为建模 结构结构建模建模 4-1 门电平模型化门电平模型化 Verilog HDL中提供下列内置基本门:中提供下列内置基本门: 1) 多输入门:多输入门:and, nand, or,

34、nor, xor, xnor 2) 多输出门:多输出门:buf, not 3) 三态门:三态门:bufif0, bufif1, notif0, notif1 4) ) 上拉、下拉电阻:上拉、下拉电阻:pullup, pulldown 5) MOS开关:开关: cmos, nmos, pmos, rcmos, rnmos, rpmos 6) 双向开关:双向开关: tran,tranif0, tranif1, rtran, rtranif0, rtranif1 多输入门 例如: and A1(Out1, In1, In2) ; and RBX (Sty, Rib, Bro, Qit, Fix )

35、; MOS开关 MOS开关有: cmos pmos nmos rcmos rpmos rnmos 这类门用来为单向开关建模。即数据从输 入流向输出,并且可以通过设置合适的控 制输入关闭数据流。 pmos( p类型MOS管 )、nmos ( n类型MOS 管 )、rnmos ( r代表电阻)和rpmos开关有 一个输出、一个输入和一个控制输入。 例如: pmos P1 (OutputA, InputB, ControlC) ; rnmosRN1 (ControlBit, ReadyBit, Hold ) ; 例如: cmos C1(OutputA, InputB, NControl,PContr

36、ol); 【例10】2- 4解码器(门电平建模) Z0 Z1 Z2 Z3 N0 A V0 N1 B V1 N2 N3 EN moduleDEC2x4 (A, B, Enable, Z) ; input A, B, Enable; output 0:3 Z; wire Abar, Bbar; not V0(Abar, A) , V1(Bbar, B) ; nand N0(Z0, Enable, Abar, Bbar) , N1(Z1, Enable, Abar, B) , N2(Z2, Enable, A, Bbar) , N3(Z3, Enable, A, B) ; endmodule 设计中

37、心 UDP(用户定义原语) UDP的定义是由一个独立的定义模块构成,该的定义是由一个独立的定义模块构成,该 模块关键字模块关键字“primitive”和和“endprimitive”。 UDP的实例语句与基本门的实例语句完全相同。的实例语句与基本门的实例语句完全相同。 UDP只能有只能有一个输出一个输出和和一个或多个输入一个或多个输入。第一。第一 个端口个端口必须必须是输出端口。是输出端口。 输出可以取值输出可以取值0、1或或x(不允许取不允许取z值值)。输入中。输入中 出现值出现值z以以x处理。处理。 UDP的行为以的行为以表表的形式描述。的形式描述。 【例11】UDP(2-1选择器)行为建

38、模 行为建模的主要机制。 1) initial 语句:只执行一次 2) always语句:重复执行 一个模块中可以包含任意多个initial或 always语句。这些语句相互并行执行,即 这些语句的执行顺序与其在模块中的顺序无关。 语句块语句块 语句块提供将语句块提供将两条或更多条两条或更多条语句组合成语句组合成 语法结构上相当于一条语句的机制。在语法结构上相当于一条语句的机制。在 VerilogHDLVerilogHDL中有两类语句块,即:中有两类语句块,即: 1) 1) 顺序语句块顺序语句块(begin . end)(begin . end):语句块:语句块 中的语句按给定次序顺序执行。中

39、的语句按给定次序顺序执行。 2) 2) 并行语句块并行语句块(fork . join)(fork . join):语句块:语句块 中的语句并行执行。中的语句并行执行。 顺序语句块 顺序语句块中的语句按顺序方式执行。每条语句顺序语句块中的语句按顺序方式执行。每条语句 中的时延值与其前面的语句执行的模拟时间相关。中的时延值与其前面的语句执行的模拟时间相关。 例如:例如: begin #2 Stream = 1; #5 Stream = 0; #3 Stream = 1; #4 Stream = 0; #2 Stream = 1; #5 Stream = 0; 顺序语句块中的累积时延 End 并行语

40、句块过程性赋值 过程性赋值是在过程性赋值是在initialinitial语句或语句或alwaysalways语句内语句内 的赋值,它只能对寄存器数据类型的变量赋值。的赋值,它只能对寄存器数据类型的变量赋值。表达式的右端可以是任何表达式。表达式的右端可以是任何表达式。 过程性赋值分两类: 1) 阻塞性过程赋值(=) 2) 非阻塞性过程赋值(=) 阻塞性过程赋值(=) 阻塞性过程赋值在其后所有语句执行前执行,即在阻塞性过程赋值在其后所有语句执行前执行,即在 下一语句执行前该赋值语句完成执行。下一语句执行前该赋值语句完成执行。 例如: always (A or B or Cin) begin reg

41、T1, T2, T3 ; T1 = A & B ; T2 = B & Cin; /T1赋值生效后执行T2赋值 T3 = A & Cin; Cout= T1 | T2 | T3; end 设计中心 非阻塞性过程赋值(=) 通常非阻塞性赋值执行次序彼此不相关 例如: initial begin A =B ; B =A ; /执行结果是A与B取值互换 end 连续赋值与过程赋值的比较 过程赋值 连续赋值 在always语句或initial语句 内出现 在一个模块内出现 与其它语句并行执行;右端 操作数的值发生变化时执行 执行与周围其它语句有关 驱动寄存器使用“=”或“=”赋值符号 驱动线网 使用“=”赋值符号 有assign关键词 无assign关键词(在过程 性连续赋值中有assign关 键词除外) 其它语句 if语句 case语句 循环语句 1) forever循环 2) repeat循环 3) while循环 4) for 循环 设计中心 作业

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号