版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、verilog2009-TJU. ASIC Center-Arnold Shi,第三章 verilog的基本语法,天津大学电子科学与技术系史再峰 ,verilog2009-TJU. ASIC Center-Arnold Shi,3.1数据类型及其常量及变量,天津大学电子科学与技术系史再峰 ,verilog2009-TJU. ASIC Center-Arnold Shi,0、低、伪、逻辑低、地、VSS、负插入,1、高、真、逻辑高、电源、VDD、正插入,X、不确定:逻辑冲突无法确定其逻辑值,HiZ、高阻抗、三态、无驱动源,Verilog 的四种逻辑值,x和X、z和Z不区别大小写。Z有时候也用?代替
2、,verilog2009-TJU. ASIC Center-Arnold Shi,数据类型,Verilog HDL中共有19种数据类型,分成常量和变量 最基本最常用的4种: 寄存器型reg 线网型wire 整形 integer 参数型 parameter 其余的包括:large medium scalared time small tri trio tri1 triand trior trireg vectored wand wor型,主要与基本单元库有关,设计时很少使用,verilog2009-TJU. ASIC Center-Arnold Shi,一、常量,在程序运行中,其值不能被改变的量
3、叫常量 两类最基本的常量:数字型常量和参数(parameter) 数字型常量:整型数可以按如下两种方式书写 简单的十进制数格式 基数格式,verilog2009-TJU. ASIC Center-Arnold Shi,基数表示法(一),格式:位宽进制 值 无符号数。 位宽是按照二进制数来计算的。 进制可以为b或B(二进制)、o或O(八进制)、d或D(十进制)、h或H(十六进制)。值是基于进制的数字序列。如: 3b001, 3B110 三位二进制 6o12, 6O12 六位八进制 4d9, 4D9 十位十进制 8hBF, 8HBF 八位十六进制,verilog2009-TJU. ASIC Cen
4、ter-Arnold Shi,基数表示法(二),基数格式计数形式的数通常为无符号数。 这种形式的整型数的长度定义是可选的。如果没有定义一个整数型的长度,数的长度为相应值中定义的位数。 下面是两个例子: o721 9位八进制数 hAF 8位十六进制数,verilog2009-TJU. ASIC Center-Arnold Shi,基数表示法(三),如果定义的长度比为常量指定的长度长,通常在左边填0补位。但是如果数最左边一位为x或z,就相应地用x或z在左边补位。 例如:10b10 左边添0占位, 0000000010 10bx0 x1 左边添x占位, x x x x x x x 0 x 1 如果长
5、度定义得更小,那么最左边的位相应地被截断。 例如: 3 b1001_0011与3b011 相等 5H0FFF 与5H1F 相等 ?字符在数中可以代替值z在值z被解释为不分大小写的情况下提高可读性,verilog2009-TJU. ASIC Center-Arnold Shi,下划线,下划线可以用来分割数的表达式以提高程序的可读性,但不能用在位宽和进制处,只能用于具体的数字之间 比如 16b1010_1011_11111_000 /合法格式 8b_0011_1011 /非法格式,verilog2009-TJU. ASIC Center-Arnold Shi,负数,一个数字可以被定义成负数,只要在
6、位宽表达式前加一个减号 - 8d5 / 合法格式 8d-5 /非法格式,verilog2009-TJU. ASIC Center-Arnold Shi,简单的十进制格式,这种形式的整数定义为带有一个可选的“+”(一元)或“”(一元)运算符的数字序列。 这种形式的整数值代表一个有符号的数。负数使用补码形式表示。 例如 15相当于二进制01111 -15相当于二进制10001,verilog2009-TJU. ASIC Center-Arnold Shi,实数类型,实数可以用下列两种形式定义 十进制记数法,例如: 2.0 ; -0.1等 科学记数法,例如: 235.1e2等于23510.0 234
7、_12e2等于2341200.0 实数小数通过四舍五入被隐式地转换为最相近的整数。例如: 42.446, 42.45 转换为整数42 92.5, 92.699 转换为整数93 5.62 转换为整数6 26.22 转换为整数6,verilog2009-TJU. ASIC Center-Arnold Shi,常量的位数,,x(或z)在十六进制值中代表4位x(或z),在八进制中代表3位x(或z),在二进制中代表1位x(或z) 当常量不说明位数时候默认是32位,每个字母用8位ASCII码来表示 10 =32d10 =32b1010 1=32d1 =32b1 -1 = -32d1 =32hFFFF_FF
8、FF BX=32BX=32BXXXXXXXXXX. “AB”=16B 010000001_01000010 A的ASCII值是85,B的值是86,verilog2009-TJU. ASIC Center-Arnold Shi,字符串,字符串是双引号内的字符串列。 一个字符可用八位二进制表示。如: “INTEGER” 需要 8*7位。 例:reg 8*14:1 Message; Message = “INTERNAL ERROR”;,verilog2009-TJU. ASIC Center-Arnold Shi,课堂练习,下列表达式的位模式是什么?写出其具体的二进制表示值 7o44, Bx0,
9、5bx110, hA0, 10d2, hzF,verilog2009-TJU. ASIC Center-Arnold Shi,参数,参数是一个常量。用parameter定义一个标识符来代表一个常量。参数经常用于定义时延和变量的宽度。 格式: parameter param1 = const_expr1, param2 = const_expr2, , paramN = const_exprN; 如: parameter Delay = 1; parameter A = 32,B=4b0001; parameter string = “exec_command”;,verilog2009-TJU
10、. ASIC Center-Arnold Shi,参数的传递,参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值 当某个模块在另一个模块内被引用时,高层模块能够改变低层模块的参数值。模块参数值的改变可采用下述两种方式: 参数定义语句(defparam); 带参数值的模块引用。,verilog2009-TJU. ASIC Center-Arnold Shi,defparam举例,module TOP (NewA, NewB, NewS, NewC); input NewA, NewB; output NewS,NewC; defparam Ha1.XOR
11、_DELAY=5, /实例Ha1中的参数XOR_DELAY。 Ha1.AND_DELAY=2; /实例Ha1中参数的AND_DELAY。 HA Ha1(NewA, NewB, NewS, NewC); endmodule,module HA(A,B,S,C); input A,B; output S,C; parameter AND_DELAY=1, XOR_DELAY=2; assign #XOR_DELAY S=AB; assign #AND_DELAY C=A input NewA, NewB; output NewS,NewC; HA #(5,2) Ha1 (NewA, NewB, N
12、ewS, NewC); /第1个值5赋给参数AND_DELAY,该参数在模块HA中说明。 /第2个值2赋给参数XOR_DELAY,该参数在模块HA中说明。 endmodule,verilog2009-TJU. ASIC Center-Arnold Shi,课堂练习-参数传递,假定一个模块为BK,内部两个参数P1,P2;另外一个模块为HA,内部参数P3,P4 其在TOP模块中实例化调用的名称分别为U1, U2 请尝试在top模块中用两种不同的方法改变其参数值p1-p4分别为1,2,3,4,verilog2009-TJU. ASIC Center-Arnold Shi,二、变 量,在Verilog
13、中有两大主要数据类型:线网类型(wire)、寄存器类型(reg)。 线网类型 包含下述不同种类的线网子类型。 wire, tri 用于连线的最常见的线网类型 wor, trior 线或 wand, triand 线与 trireg 此线网存储数值,用于电容节点的建模 tri1, tri0 用于线逻辑的建模,上拉或下拉驱动 supply0, supply1 supply0用于对“地”建模,supply1对电源建模,verilog2009-TJU. ASIC Center-Arnold Shi,nets(网络连线),nets(网络连线): 由模块或门驱动的连线。 驱动端信号的改变会立刻 传递到输出
14、的连线上。 例如:右图上,selb的改 变,会自动地立刻影响或 门的输出。,nets,verilog2009-TJU. ASIC Center-Arnold Shi,Nets(线网型),例: wire BpW; assign BpW=Error ,BpW电路图,verilog2009-TJU. ASIC Center-Arnold Shi,Nets(网络连线,线网类型),简单的线网类型定义说明语句为: net_kind msb:lsb net1,net2,.netN; 当一个线形有两个或多个驱动时,线网的有效值按如下表确定。,verilog2009-TJU. ASIC Center-Arnol
15、d Shi,补充:CMOS NOR,A + B,A,B,A,B,A,B,verilog2009-TJU. ASIC Center-Arnold Shi,补充:CMOS NAND,A,B,A B,A,B,A,B,verilog2009-TJU. ASIC Center-Arnold Shi,Nets(网络连线),verilog2009-TJU. ASIC Center-Arnold Shi,补充知识:连续赋制值语句,连续赋制语句用于把值赋给线网型变量(不能为寄存器型变量赋值) 语句形式为:assign A = B 连续赋值语句在什么时候执行呢? 只要在右端表达式的操作数上有事件(事件为值的变化)
16、发生时,表达式即被计算;如果结果值有变化,新结果就赋给左边的线网。,verilog2009-TJU. ASIC Center-Arnold Shi,连续赋值的目标类型,标量线网 向量线网 向量的常数型位选择 , 如 a1 向量的常数型部分选择 如:a3:1 上述类型的任意的拼接运算结果,verilog2009-TJU. ASIC Center-Arnold Shi,连续赋值语句举例,module F A _ D f (A, B, Cin, Sum, Cout ) ; input A, B, Cin; output Sum, Cout ; assign S u m = A B Cin; assi
17、gn C o u t = (A endmodule,在本例中,有两个连续赋值语句。这些赋值语句是并发的,与其书写的顺序无关,verilog2009-TJU. ASIC Center-Arnold Shi,数据流描述方式,例: wor BpW; wand BpR; assign BpW=Error ,BpW和BpR电路图,verilog2009-TJU. ASIC Center-Arnold Shi,寄存器(register)类型变量,寄存器(register)类型变量 register 型变量能保持其值,直到它被赋于新的值。 register 型变量常用于行为建模,产生测试的激励信号。 常用行
18、为语句结构来给寄存器类型的变量赋值。,verilog2009-TJU. ASIC Center-Arnold Shi,reg型,寄存器是数据存储单元的抽象 reg型数据常用来表示always块内的指定信号,常代表触发器 reg型数据用initial或者always块中指定信号 reg型数据的缺省值是x。可以被赋正值或者负值。当它作为一个表达式中的操作数时候,作为无符号数。 reg数据类型定义格式为 reg n-1:0 数据名1,.; 或者 reg n:1 数据名1,.;,verilog2009-TJU. ASIC Center-Arnold Shi,寄存器阵列,Verilog 语言支持寄存器阵
19、列的声明: integer NUMS 7:0; / 8个整型变量的寄存器阵列 time t_vals 3:0; /4个时间变量的寄存器阵列 数据类型为 reg 的阵列常称为存储器(即 memory): reg 15:0 MEM 0:1023; / 1K x 16 位的存储器 reg 7:0 PREP hfffe : hffff; / 2 x 8 位的存储器 可以用参数来表示存储器的大小: parameter wordsize = 16; parameter memsize = 1024; reg wordsize-1:0 MEM3memsize-1:0; 只能一次选择一个字,不允许对存储器变量
20、值部分进行部分选择或位选择. 如 dram60 2:4是错误的,verilog2009-TJU. ASIC Center-Arnold Shi,存储器 memory型变 量,存储器 memory型 用一个寄存器数组来对存储器建模。 格式: reg msb:lsb 存储器名 upper1:lower1; 如: reg 3:0 MyMem 63:0; / 64个四位寄存器组,verilog2009-TJU. ASIC Center-Arnold Shi,其他类型变量,integer 整数寄存器 有符号数。 主要用来高层次建模。 如: integer A;/ 整形寄存器,32位 integer B
21、1023:0; / 10位 time 时间类型寄存器 如: time CurrentTime;/ CurrentTime存储一个时间值 CurrentTime = $time;,verilog2009-TJU. ASIC Center-Arnold Shi,输入端口(input)可以由寄存器(reg)或线网(wire)连接驱动,但它本身只能驱动网络连接。 输出端口 (output)可以由寄存器或线网连接驱动,但它本身只能驱动线网连接。 输入/输出端口(inout)只可以由线网连接驱动,但它本身只能驱动线网连接。 如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把
22、它声明为寄存器类型变量,如何选择正确的数据类型?,verilog2009-TJU. ASIC Center-Arnold Shi,module top; wire y; reg a, b; DUT u1(y,a,b); initial begin a = 0; b = 0; #10 a =1; . end endmodule,module DUT(Y, A, B_); output Y; input A,B: wire Y, A, B; and (Y, A, B); endmodule,举例说明数据类型的选择,verilog2009-TJU. ASIC Center-Arnold Shi,在过
23、程块(always initial)中对变量赋值时,忘了把它定义为寄存器 类型(reg)或已把它定义为连接类型了(wire) 把实例的输出连接出去时,把它定义为寄存器类型 把模块的输入信号定义为寄存器类型。 这是经常犯的三个错误!,选择数据类型时常犯的错误,verilog2009-TJU. ASIC Center-Arnold Shi,3.2运算符及表达式,天津大学电子科学与技术系史再峰 ,verilog2009-TJU. ASIC Center-Arnold Shi,3.2 运算符(操作符)及表达式,Verilog HDL中的运算符可以分为下述类型: 算术运算符 关系运算符 相等运算符 逻辑
24、运算符 按位运算符 缩减(归约)运算符 移位运算符 条件运算符 连接和复制运算符,verilog2009-TJU. ASIC Center-Arnold Shi,按所带操作数的个数分类,单目运算符(unary operator) 带一个操作数,操作数在运算符的 右边 如 clock 双目运算符(binary operator) 带两个操作数,操作数分别在运算符的两边 如 a | b 三目运算符(ternary operator) 带三个操作数,用三目运算符隔开,verilog2009-TJU. ASIC Center-Arnold Shi,3.2.1算术运算符,算术运算符有: +(一元加和二元
25、加) -(一元减和二元减) *(乘) /(除) %(取模) 整数除法截断任何小数部分。例如: 7/4 结果为1 取模运算符求出与第一个运算符符号相同的余数。 7%4 结果为3 而- 7%4 结果为- 3,verilog2009-TJU. ASIC Center-Arnold Shi,课堂练习,以下表达式在verilog HDL中的值是多少?(结果用16位hex表示表示) 5/3 (-9)/6 (-9) % 6 11 % (-5) 12 / (-7),答案是 5/3 = 16h0001 (-9)/6 = 16hFFFF (-9) % 6 = 16h FFFD 11 % (-5) = 16h000
26、1 12 / (-7) =16hFFFF,verilog2009-TJU. ASIC Center-Arnold Shi,3.2.2按位运算符,按位运算符有: (一元非) B = b0100; 那么:A | B 结果为0 1 1 0 A assign b=8hff; assign c_out=a c_out2结果是0000_0001,verilog2009-TJU. ASIC Center-Arnold Shi,课堂练习,以下表达式在verilog HDL中的值是多少?(结果用8位表示) assign d_0 = 4b1101 8h0a; assign d_1 = 4b1101 8h0a; a
27、ssign d_2 = 4b1z01 | 8h0a; assign d_3 = 4b1101 ,答案是 # hex d_0 is 07 # hex d_1 is F8 # binary d_2 is 0000_1x11 # hex d_3 is 01 # hex d_4 is 00 # hex d_5 is 01,verilog2009-TJU. ASIC Center-Arnold Shi,3.2.4关系运算符,关系运算符有: (大于) =(不小于) 45结果为假( 0) 52 8hxFF结果为x。,verilog2009-TJU. ASIC Center-Arnold Shi,关系运算符语
28、法,如果操作数长度不同,长度较短的操作数在最重要的位方向(左方)添0补齐。例如: b1000 = b01110 等价于:b01000 = b01110结果为假( 0),verilog2009-TJU. ASIC Center-Arnold Shi,3.2.5相等关系运算符,相等关系运算符有: = =(逻辑相等) != (逻辑不等) = = =(全等) != =(非全等) 如果比较结果为假,则结果为0;否则结果为1。在全等比较中,值x和z严格按位比较。,verilog2009-TJU. ASIC Center-Arnold Shi,相等关系运算举例,Data = b11x0; Addr = b1
29、1x0; 那么(Data = = Addr)不定,值为x,但: Data = = = Addr为真,值为1。 如果操作数的长度不相等,长度较小的操作数在左侧添0补位,例如: 2b10 = = 4b0010与下面的表达式相同: 4b0010 = = 4b0010 结果为真( 1)。,verilog2009-TJU. ASIC Center-Arnold Shi,关系及相等关系运算符练习,判断以下表达式中的d值是多少 assign d_relation1=(4b1011=4b10 x1); assign d_relation2=(4b1011=4b10 x1); assign d_relation
30、3=(4b10 x1=4b10 x1); assign d_relation4=(4b10z1=4b10 x1); assign d_relation5=(4b10 x1!=4b10 x1); assign d_relation6=(4b10 x1!=4b10 x1);,答案是: # bin d_relation1 is 1bx # bin d_relation2 is 1bx # bin d_relation3 is 1bx # bin d_relation4 is 1b0 # bin d_relation5 is 1b0 # bin d_relation6 is 1bx,verilog20
31、09-TJU. ASIC Center-Arnold Shi,3.2.6 缩减(归约)运算符,归约运算符在单一操作数的所有位上操作,并产生1位结果。归约运算符有: 那么: Qreg 2 是8 b 0 0 0 0 _ 0 0 0 1,verilog2009-TJU. ASIC Center-Arnold Shi,3.2.8 条件运算符,条件运算符根据条件表达式的值选择表达式,形式如下: cond_expr ? expr1 : expr2 如果cond_expr 为真(即值为1 ),选择expr1; 如果cond_expr为假(值为0 ),选择expr2。 如果cond_expr 为x或z,结果将
32、是按以下逻辑expr1和expr2按位操作的值: 0与0得0,1与1得1,其余情况为x。,verilog2009-TJU. ASIC Center-Arnold Shi,条件运算符举例,wire 0:2 Student = Marks 18 ? GA : GC; 计算表达式Marks 18; 如果真, GA 赋值给Student; 如果Marks =18, GC 赋值给Student。 再例如: always #5 Ctr = (Ctr != 25) ? (Ctr + 1) : 5; 过程赋值中的表达式表明如果Ctr不等于25, 则加1; 否则如果Ctr值为25时, 将Ctr值重新置为5。,v
33、erilog2009-TJU. ASIC Center-Arnold Shi,3.3.8 连接和复制操作,连接操作是将小表达式合并形成大表达式的操作。形式如: expr1, expr2, . . .,exprN 实例如下所示: wire 7:0 Dbus; wire 11:0 Abus; assign Dbus 7:4 = Dbus 0, Dbus 1, Dbus2, Dbus 3 ; / /以反转的顺序将低端4位赋给高端4位。 assign Dbus = Dbus 3:0, Dbus 7 : 4 ; / /高4位与低4位交换。,verilog2009-TJU. ASIC Center-Arn
34、old Shi,复制运算符,通过指定重复次数来执行操作。形式如下: repetition_number expr1, expr2 , ., exprN 以下是一些实例: Abus =34b1011; /位向量12b1011_1011_1011) Abus = 4Dbus7, Dbus; /*符号扩展*/,verilog2009-TJU. ASIC Center-Arnold Shi,运算符的优先级,verilog2009-TJU. ASIC Center-Arnold Shi,3.2.10关键词,所有关键词都是事先定义好的确认符,用于组织语言结构,全部是小写定义。 常用的有assign alw
35、ays initial begin end buf bufif0 bufif1 casex casez cmos deassign default defparam disable edge case if else endcase join large fork join not notif0 notif1 xor wire reg wor xor xnor while tri tri0 tri1 triand trior repeat task function forever endtask 等等,verilog2009-TJU. ASIC Center-Arnold Shi,作业练习题
36、,假定3 2位总线Address_Bus, 编写一个表达式,计算从第11位到第2 0位的归约与非。 假定一条总线Control_Bus 15 : 0,编写赋值语句将总线分为两条总线: Abus 0 :9和Bbus 6 : 1 。 编写一个表达式,执行算术移位,将Qparity 中包含的8位有符号数算术移位。 使用条件运算符, 编写赋值语句选择NextState的值。如果CurrentState的值为RESET, 那么NextState的值为GO;如果CurrentState的值为GO,则NextState 的值为BUS Y;如果CurrentState的值为B U S Y;则NextS tat
37、e的值为RESET。,verilog2009-TJU. ASIC Center-Arnold Shi,习题解答,错误解答: assign CurrentState=RESET?NextState=Go:(CurrentState=Go?NextState=BUSY:(CurrentState=BUSY?NextState=RESET:) 正确解答: assign nextstate = (currentstate=RESET) ? GO : (currentstate =GO )? BUSY : ( currentstate = BUSY ) ? RESET : 1bz );,verilog2
38、009-TJU. ASIC Center-Arnold Shi,3.3数据流建模,天津大学电子科学与技术系史再峰 ,verilog2009-TJU. ASIC Center-Arnold Shi,一、连续赋制值语句,连续赋制语句用于把值赋给线网型变量(不能为寄存器型变量赋值) 语句形式为:assign A = B 只要在右端表达式的操作数上有事件(事件为值的变化)发生时,表达式即被计算; 如果计算的结果值有变化,新结果就赋给左边的线网。,verilog2009-TJU. ASIC Center-Arnold Shi,数据流的模型化,连续赋值语句将值赋给线网(连续赋值不能为reg) 例如 ass
39、ign Mux = (S = = 0)? A : 1bz; assign Mux = (S = = 1)? B : 1bz; assign Mux = (S = = 2)? C : 1bz; assign Mux = (S = = 3)? D : 1bz;,assign Mux = (S = = 0)? A : 1bz, /也可以这样在一个语句中写 Mux = (S = = 1)? B : 1bz, Mux = (S = = 2)? C : 1bz, Mux = (S = = 3)? D : 1bz;,verilog2009-TJU. ASIC Center-Arnold Shi,连续赋值的目
40、标类型,标量线网 wire a; 向量线网 wire 7:0 a; 向量线网的常数型位选择 , 如 a1 向量线网的常数型部分选择 如:a3:1 上述类型的任意的拼接运算结果 3a2,a2:1,verilog2009-TJU. ASIC Center-Arnold Shi,连续赋值语句举例,module FA _Df (A, B, Cin, Sum, Cout ) ; input A, B, Cin; output Sum, Cout ; assign Sum = A B Cin; assign Cout = (A endmodule,在本例中,有两个连续赋值语句。这些赋值语句是并发的,与其书
41、写的顺序无关,verilog2009-TJU. ASIC Center-Arnold Shi,对应的电路连接关系,verilog2009-TJU. ASIC Center-Arnold Shi,赋值给向量线网的拼接,wire Cout, Cin ; wire 3:0 Sum, A, B; assign Cout, Sum = A + B + Cin;,verilog2009-TJU. ASIC Center-Arnold Shi,数据流描述方式,例: wor BpW; wand BpR; assign BpW=Error ,BpW和BpR电路图,verilog2009-TJU. ASIC Ce
42、nter-Arnold Shi,用数据流描述对2 - 4解码器电路的建模,verilog2009-TJU. ASIC Center-Arnold Shi,参考答案,timescale 1ns/1ns module Decoder2x4(A,B,EN,Z); input A,B,EN; output 0:3 Z; wire Abar,Bbar; assign Abar=A; assign Bbar=B; assign Z0=(Abar endmodule,verilog2009-TJU. ASIC Center-Arnold Shi,课堂练习题,使用连续赋值语句,描述图示的优先编码器电路的行为,
43、2bar0,2bar1,2bar2,verilog2009-TJU. ASIC Center-Arnold Shi,某同学的解答,module (Data ,Encode ,Valid ); input 3:0Data ; output 1:0Encode ; wire 2bar0,2bar1,0bar ; assign 2bar0=Data 2; assign 2bar1=2bar0 endmodule,程序基本没有问题,但是: 第1行module没有命名,这是不可以的 第4行变量定义的时候,标识符的首字母应该是字母或者下划线,verilog2009-TJU. ASIC Center-Arn
44、old Shi,正确解答,module encoder(Data ,Encode ,Valid ); input 3:0Data ; output 1:0Encode ; wire bar0, bar1,bar ; assign bar0=Data 2; assign bar1=2bar0 endmodule,verilog2009-TJU. ASIC Center-Arnold Shi,二、线网说明赋值,连续赋值可作为线网说明本身的一部分。这样的赋值被称为线网说明赋值。如: wire 3:0 Sum = 4b0; wire Clear = b1; wire A _GT _ B = A B,
45、B_GT_A= B A; 等价于 wire clear; assign clear=b1; 不允许在同一个线网上出现多个线网说明赋值。如果多个赋值是必需的,则必须使用连续赋值语句。,verilog2009-TJU. ASIC Center-Arnold Shi,隐式线网,如果在Verilog HDL模型中一个线网没有被特别说明,那么它被缺省声明为1位线网。但是 default_nettype编译指令能够用于取代缺省线网类型. 例:default_nettype wand /根据此编译指令,所有后续未说明的线网都是wand类型 再例: default_nettype wire module AN
46、D4to1 (Z, D0, D1, D2, D3, S0) ; output Z; input D0 , D1 , D2 , D3, S0; assign Z = S0 ? (D0 endmodule,verilog2009-TJU. ASIC Center-Arnold Shi,数据流建模课堂练习,verilog2009-TJU. ASIC Center-Arnold Shi,数据流建模参考答案,module MSDFF_DF(D,C,Q,Qbar); input D,C; output Q,Qbar; /wire NotC,NotD,NotY,Y,D1,D2,Ybar,Y1,;Y2 ass
47、ign NotD=D; assign NotC=C; assign NotY=Y; assign D1=(D endmodule,verilog2009-TJU. ASIC Center-Arnold Shi,三、时延说明,assign #6 Ask = Quiet | | Late; 规定右边表达式结果的计算到其赋给左边目标需经过6个时间单位时延。 例如,如果在时刻5,Late值发生变化,则赋值的右端表达式被计算,并且Ask在时刻11( = 5 +6)被赋于新值,verilog2009-TJU. ASIC Center-Arnold Shi,时延,Verilog HDL模型中的所有时延都根据
48、时间单位定义 使用编译指令将时间单位与物理时间相关联。这样的编译器指令需在模块描述前定义,如下所示: timescale 1ns /100ps 此语句说明时延时间单位为1ns并且时间精度为100ps (时间精度是指所有的时延必须被限定在0.1ns内)。如果此编译器指令所在的模块包含上面的连续赋值语句, #2 代表2ns。 如果没有这样的编译器指令, Verilog HDL 模拟器会指定一个缺省时间单位。IEEE VerilogHDL 标准中没有规定缺省时间单位。,verilog2009-TJU. ASIC Center-Arnold Shi,为什么会有延时?,以下两个最基本的电路单元,veri
49、log2009-TJU. ASIC Center-Arnold Shi,CMOS NAND,A,B,A B,A,B,A,B,verilog2009-TJU. ASIC Center-Arnold Shi,CMOS NOR,A,B,verilog2009-TJU. ASIC Center-Arnold Shi,MOSFET的结构,verilog2009-TJU. ASIC Center-Arnold Shi,MOS电容,verilog2009-TJU. ASIC Center-Arnold Shi,静态CMOS的开关模型,A,Req,A,NAND2,INV,NOR2,verilog2009-TJ
50、U. ASIC Center-Arnold Shi,关于时延探讨,如果右端在传输给左端之前变化,右端发生在时延间隔内的变化被滤掉。 例如:assign #4 Cab = Drm; 这也同样适用于惯性时延行为:即右端值变化在能够传播到左端前必须至少保持时延间隔;如果在时延间隔内右端值变化,则前面的值不能传输到输出。,verilog2009-TJU. ASIC Center-Arnold Shi,三类时延值,对于每个时延定义,总共能够指定三类时延值: 上升时延 下降时延 关闭时延 assign # (rise, fall, turn-off) LHS = RHS_expr ; 如果右端从非0向量变
51、化到0向量,那么就使用下降时延。如果右端值到达z,那么使用下降时延;否则使用上升时延。 assign #4 Ask = Quiet | | Late; / One delay value. assign # (4,8) Ask = Quick ; / Two delay values. assign # (4,8,6) Arb = / No delay value.,verilog2009-TJU. ASIC Center-Arnold Shi,带时延的译码器建模,timescale 1ns/1ns module Decoder2x4(A,B,EN,Z); input A,B,EN; outp
52、ut 0:3 Z; wire Abar,Bbar; assign #1 Abar=A; assign #1 Bbar=B; assign #2 Z0=(Abar endmodule,verilog2009-TJU. ASIC Center-Arnold Shi,结果波形,verilog2009-TJU. ASIC Center-Arnold Shi,3.3.3 线网时延,时延也可以在线网说明中定义, 如: wire # 5 A r b;线网时延效果如图,线网时延,Text,assign 时延,assign 时延,驱动2,驱动2,驱动1,RHS表达式,RHS表达式,线网目标,verilog200
53、9-TJU. ASIC Center-Arnold Shi,线网时延举例,wire # 5 Arb; assign # 2 Arb = Bod 因为定义了线网时延,实际对Arb的赋值发生在时刻17( = 10 + 2 + 5)。,verilog2009-TJU. ASIC Center-Arnold Shi,课后作业,数据流建模以下的奇偶发生器,verilog2009-TJU. ASIC Center-Arnold Shi,3.4 门级结构建模,天津大学电子科学与技术系史再峰 ,verilog2009-TJU. ASIC Center-Arnold Shi,3.4 门级结构建模,module
54、addbit (a, b, ci, sum, co); input a, b, ci; output sum, co; wire a, b, ci, sum, co, n1, n2, n3; xor (n1, a, b,); xor (sum, n1, ci); and (n2, a, b); and (n3, n1, ci); or (co, n2, n3); endmodule,由一些Verilog原型,列出结构化的元件 并按网表连接,verilog2009-TJU. ASIC Center-Arnold Shi,3.4.1内置的基本门,Verilog HDL为门级电路建模的能力. 提供下
55、列内置基本门: 多输入门:and, nand, or, nor, xor, xnor 多输出门:buf, not 三态门: bufif0, bufif1, notif0, notif1 上拉、下拉电阻:pullup, pulldown MOS开关:cmos, nmos, pmos, rcmos, rnmos, rpmos 双向开关:tran,tranif0, tranif1, rtran, rtranif0, rtranif1,verilog2009-TJU. ASIC Center-Arnold Shi,门级结构建模语法,语句形式 gate_type instance_name (term1
56、, term2, ., termN) ; 注意,instance_name是可选的; gate_type为前面列出的某种门类型。各term用于表示与门的输入/输出端口相连的线网或寄存器. 同一门类型的多个实例能够在一个结构形式中定义 gate_type instance_name1 (term1, term2, ., termN) , instance_name2 (term1, term2, ., termN) , instance_name3 (term1, term2, ., termN), instance_name4 (term1, term2, ., termN) ;,verilo
57、g2009-TJU. ASIC Center-Arnold Shi,3.4.2 多输入门,内置的多输入门包括: and nand nor or xor xnor 这些逻辑门只有单个输出, 1个或多个输入。门实例语句的语法如: multi_input_gate_type instance_name (OutputA, Input1, Input2, ., Input N); 第一个端口是输出,其它端口是输入,多输入门,input 1,input 2,input N,Output A,verilog2009-TJU. ASIC Center-Arnold Shi,多输入门语法举例,and A1(Out1, In1, In2) ; and RBX (Sty, Rib, Bro, Qit, Fi)x ; xor (Bar, Bud0 ,Bud1, B u d2 ) , (Car, Cut0, Cut1 ) , (Sar, Sut2, Sut1, S u t0, S u t3 ) ;,verilog2009-TJU. ASIC Center-Arnold Shi,多输入门的真值表(一),verilog2009-TJU. ASIC Center-Arnold Shi,多输入门的真值表(二),verilog2009-TJU. ASIC Ce
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产3000万平方米多功能电子薄膜、50万套汽车隐形车衣项目竣工环境保护验收检测报告
- 2026年大气质量监测试题及答案
- 龙门吊机房除湿防潮改造指南(2025版)
- 难治性反流性食管炎治疗共识
- 社会责任感试题及答案
- 实木家具打磨除尘管道积灰吹扫指南(2025版)
- 驾驶员安全培训试卷(附答案)
- 2026下半年河南省事业单位医疗卫生岗笔试历年真题试卷带解析
- 高中地理教资面试高频题试卷及答案
- 小学美术教资面试结构化题库及答案
- GB 48147.1-2026矿山隐蔽致灾因素普查规范第1部分:总则
- 2026中国工业废水零排放技术路线与成本效益分析报告
- 2026-2032年中国智能辅助治疗行业市场动态分析及发展趋向研判报告
- 2026年度国家工作人员学法用法考试题库(含答案)
- 2026年成都市金牛区人民检察院公开招聘编外人员笔试参考题库及答案详解
- 2026年上海市建筑三类人员项目负责人(安全员B证)考试题库
- 1与食品经营相适应的操作流程
- 高等数学(经济类-上册第2版)课件:函数
- 严重创伤患者紧急救治血液保障模式与输血策略中国专家共识(2024版)
- 实验室安全与防护2048832 知到智慧树网课答案
- 大学生物学知到章节答案智慧树2023年浙江大学
评论
0/150
提交评论