第四讲 数据流建模

上传人:一*** 文档编号:153317037 上传时间:2022-09-18 格式:PPT 页数:36 大小:560.50KB
收藏 版权申诉 举报 下载
第四讲 数据流建模_第1页
第1页 / 共36页
第四讲 数据流建模_第2页
第2页 / 共36页
第四讲 数据流建模_第3页
第3页 / 共36页
资源描述:

《第四讲 数据流建模》由会员分享,可在线阅读,更多相关《第四讲 数据流建模(36页珍藏版)》请在装配图网上搜索。

1、第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系第第 四四 讲讲 数数 据据 流流 建建 模模v连续赋值语句连续赋值语句(assign)(assign)v表达式与操作数表达式与操作数v运算符运算符v数据流建模数据流建模v赋值延时与线网延时赋值延时与线网延时v举例举例第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系数据流建模数据流建模模块定义module(port list)时序特性timig specifications端口说明Port declarations输入input双向inout输出output数据类型说明Data type declarations线网类型net参数

2、parameter寄存器类型register电路功能描述电路功能描述Circuit functionality子程序subprograms任务task函数function系统任务和函数System task&function编译指令Compiler directives连续赋值连续赋值Continuousassignment赋值语句赋值语句assign过程块Proceduralblocks过程块语句initial blockalways block模块实例模块实例instantiation第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系连续赋值语句连续赋值语句(assign)(assi

3、gn)v 连续赋值语句将值赋给线网信号线网信号(连续赋值不能为寄存连续赋值不能为寄存器信号赋值器信号赋值),它等价于门级描述,但是从更高的抽象角度来对电路进行描述。v 它的格式如下(简单形式):assign net_value=expression(表达式);v 例:assign out =i1&i2;/out,i1,i2均为线网;wire 3:0 Z,preset,clear;/线网说明 assign Z=preset&clear;/连续赋值语句 Assignc_out,sum3:0=a3:0+b3:0+c_in;/拼接第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系连续赋值的简化形

4、式:连续赋值的简化形式:assign Mux=(S=0)?A:bz,Mux=(S=1)?B:bz,=Mux=(S=2)?C:bz,Mux=(S=3)?D:bz;assign Mux=(S=0)?A:bz;assign Mux=(S=1)?B:bz;assign Mux=(S=2)?C:bz;assign Mux=(S=3)?D:bz;四个语句并行执行第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系连续赋值语句的特点连续赋值语句的特点 连续赋值语句的左值必须是一个标量或向量线网,或者是标量或向量线网的拼接,而不能是向量或向量寄存器。连续赋值语句总是处于激活状态。只要任意一个操作数发生变化

5、,表达式就会被立即重新计算,并将结果赋给等号左边的线网。操作数可以是标量或向量线网或寄存器,也可以是函数调用。第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系隐式连续赋值隐式连续赋值和和隐式线网声明隐式线网声明wire out,in1,in2;/普通的连续赋值assign out=in1&in2;/使用隐式连续赋值实际与上面两条语句同样的功能wire out=in1&in2;/连续赋值,out也是线网类型wire in1,in2;assign out=in1&in2;/注意:out并未声明类型,但是Verilog /仿真器会推断out 是一个隐式声明的线网第四讲第四讲 数据流建模数据流

6、建模西安邮电学院通信工程系表达式与操作数表达式与操作数v 表达式由操作数和运算符组成。v 操作数可以是以下类型中的一种:1)常数:35,4b10_11,8h0A;2)参数:parameter LOAD=4d12;3)线网信号(变量):wire clk;4)寄存器信号(变量):reg 3:0 state;5)位选择信号(变量):state2;6)部分选择信号(变量):state2:1;7)存储器单元信号(变量):reg 7:0 mem255:0;8)函数调用值:$time;第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系运算符运算符 运算符分类运算符分类所含运算符所含运算符算术运算符算术

7、运算符+,-,*,/,%,*位运算符位运算符,&,|,()缩位运算符缩位运算符&,&,|,|,()逻辑运算符逻辑运算符!,&,|关系运算符关系运算符,=相等与全等运算符相等与全等运算符=,!=,=,!=逻辑移位运算符逻辑移位运算符连接与复制运算符连接与复制运算符 条件运算符条件运算符?:第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系运算符的优先级运算符的优先级第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系算术运算符算术运算符v+,-:一元或二元加、减。一元加、减:+5,-4。用于表示操作数正负。二元加、减:a+b;3+2;6-1;v 无符号数加减:wire、reg信号信号和

8、基数格式的整数基数格式的整数是无符号数。例:wire 3:0 a,b,sum,sub;assign a=4b1001;assign b=4b0100;assign sum=a+b;/和sum=4b1101;assign sub=a-b;/差sub=4b0101;第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系算术运算符算术运算符v 有符号数加减:integer、real变量和十进制整数、实数是有符号数。例 integer a,b,sum,sub;real d1,d;reg 5:0 bar;initial begin a=10;b=-3;d1=3.5;sum=a+b;/sum=7 sub

9、=a-b;/sub=13 d=d1-2.3;/d=1.2 bar=-4d12;/bar=6b110100。-12的补码 end第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系算术运算符算术运算符v*,/,%,*乘、除、取模和乘方运算与C语言相似,但/,%,*运算只能用于仿真,目前还不能用于电路设计。v :取模运算结果为余数,结果符号与第一运算符保持一致。例:103,结果为1;103,结果为1v 例:integer a,b,sum,sub;real d1,d,m;reg 5:0 bar;initial begin a=10;b=-3;d1=3.5;sum=a*b;/sum=-30 sub

10、=a/b;/结果取整,结果取整,sub=-3 d=d1*2.3;/d=8.05 bar=d/2;/4.025取整取整;bar=6b000100 m=d1*2;/m=12.25 end第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系算术运算符算术运算符v 运算符中有不定态,则一般结果也为不定。例:assign sum=4b101x+4b1010;计算结果为 sum=4bxxxxv 算术表达式结果的长度由最长的操作数决定。例:例:reg 3:0 Arc,Bar4b1000,Crt=4b1100;reg 5:0 Frx;Arc=Bar+Crt;/Arc=4b0100,结果的长度为4位,溢出丢

11、弃 Frx=Bar+Crt;/Frx=6b010100,结果的长度为6位,溢出存 /在Frx4第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系位运算符位运算符v 按操作数的对应位运算。:按位取反运算。例:4b1010-4b0101&:按位与运算。例:3b110&3b10 x-3b100|:按位或运算。例:3b110|3b10 x-3b11x:按位异或运算。例:3b110 3b10 x-3b01x :按位异或非。例:3b110 3b10 x-3b10 xv 二个操作数不等长不等长时,运算结果按长操作数补0或x。例:4b0110|3b10 x-4b011x第四讲第四讲 数据流建模数据流建模

12、西安邮电学院通信工程系缩位(归约)运算符缩位(归约)运算符v 单目运算符单目运算符。对操作数逐位运算,运算结果是一位逻辑。v 运算符:与(&),或(|),异或(),及其非操作&,|,,运算规则同位运算符v 例:a=4b0110;&a等效于(0&1&1&0)&a=0;&a=1|a=1;|a=0 a=0;a=1第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系逻辑运算符逻辑运算符v 表示逻辑关系的:“真”(1)与“假”(0)。v&:逻辑与。v|:逻辑或。v !:逻辑非。v 若操作数不为0,是逻辑真或逻辑1;若操作数为0,则是逻辑假或逻辑0。v 如果任意一个操作数包含x x,结果也为x x。v

13、 注意区别:a&b 和 a&b,&a。(a、b为1bit数时等效,其它情况运算结果可能不同)第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系关系运算符关系运算符v 比较两个操作数的大小关系。v 结果是一位的逻辑值,逻辑值1表示关系成立,逻辑值0表示关系不成立。v :大于。v=:大于等于。v 如果任意一个操作数包含x x,结果也为x x。第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系相等与全等运算符相等与全等运算符v 逐位比较两个操作数。v :相等运算符。每一位的确定值(0或1)都相等时,关系为真(1),否则为假(0)。只要中间存在高阻态(z)或不定态(x),则关系为不定(x)

14、。v !=:不等运算符。与相等运算相反v:全等运算符。把不定态(x)和高阻态(z)看作逻辑状态进行比较,比较结果不存在不定态,一定是1或0。v !=:不全等运算符,与全等运算符相反。v 例:a=b=4b0100,c=d=4b10 x0,则:a=b 为1;a=b 为1;c=d为x;c=d为1第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系逻辑移位运算符逻辑移位运算符v:逻辑左移、逻辑右移v 逻辑移位运算后,空出部分均用0填充。v:算术左移、算术右移v 算术右移运算后,空出部分填充1。v 例:逻辑左移:(8b1101_1001 8b01_1001_00 逻辑右移:(8b1101_10012

15、)-8b00_1101_10 算术左移:(-10-20;6b110110-6b101100 算术右移:(-31)-2;3b101-3b110第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系连接与复制运算符连接与复制运算符v 连接运算是将多组信号用大括号括起来,拼接成一组新信号。v 例:a=1b1;b=4hf;c=3d4;a,b,c,3b101-11b1_1111_100_101v 复制运算是重复信号的拼接方法,例:a,3b,2c,d-a,b,b,b,c,d,c,d第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系条件运算符条件运算符v Verilog HDL中唯一的三目运算符。v

16、 表达式:?:v 例:assign tri_bus=(drv_enble)?data:16hzzzz;v 若条件表达式为不定态X,则两个表达式都进行计算,然后对两个结果进行逐位比较。如果相等,结果中该位的值就是操作数中对应位的值,如果不等,则为x x。例(x)?3b010:3b011-3b01x第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系数据流建模数据流建模v 结构建模主要用于模块间的互连和少量逻辑门的电路描述。v 复杂电路常用行为描述建模。行为建模重点关注模块的输入、输出的功能(行为)描述,对具体的实现电路细节不去过多关注,用于仿真或留待综合工具处理。v数据流建模是基于数据在寄存

17、器间的流动和处理的思想来描述电路。v连续赋值语句用于数据流行为建模主要描述组合逻辑电路。组合逻辑行为描述组合逻辑行为描述寄存器寄存器第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系数据流方式描述一位全加器数据流方式描述一位全加器v 一位全加器:module FA _ Df(A,B,Cin,Sum,Cout);input A,B,Cin;output Sum,Cout;assign Sum=A B Cin;assign Cout=(A&Cin)|(B&Cin)|(A&B);endmodulev 两个连续赋值语句是并发执行的,与其书写的顺序无关。v 只要连续赋值语句右端表达式中操作数的值变

18、化(即有事件发生),连续赋值语句即被执行。v 例如,A变化,则两个连续赋值都被计算,即同时对右端表达式求值,并将结果赋给左端目标。第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系数据流方式描述数据流方式描述4选选1多路选择器多路选择器module MUX4x1 (Z,D0,D1,D2,D3,S0,S1);output Z;/端口说明 input D0,D1,D2,D3,S0,S1;/端口说明 assign Z=(S1=1b0)?(S0=1b1)?D1:D0):(S0=1b1)?D3:D2);endmodule s1 s0 z 0 0D0 0 1D1 1 0D2 1 1D3真值表:第四讲

19、第四讲 数据流建模数据流建模西安邮电学院通信工程系数据流方式描述数据流方式描述4位全加器位全加器module fulladd4(sum,c_out,a,b,c_in);input 3:0 a,b;input c_int;output 3:0 sum;output c_out;assign c_out,sum=a+b+c_in;/左端用连接运算符endmodule例:1 0 0 1 a 0 1 1 0 b +1 c_in 1 0 0 0 0第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系线网说明赋值线网说明赋值v 连续赋值可作为线网说明本身的一部分。这样的赋值被称为线网说明赋值。例如:w

20、ire 3:0 Sum=4b0;wire Clear=b1;wire A_GT_B=A B,B_GT_A=B A;v 线网说明赋值与连续赋值等效:wire Clear;assign Clear=b1;第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系赋值延时与线网延时赋值延时与线网延时v 如果在连续赋值语句中没有定义延时,如前面的例子,则右端表达式的值立即赋给左端表达式,延时为。v 带延时定义的连续赋值语句格式:assign assign#delay net_value=expression;例:assign assign#6#6 Ask=Quiet|Late;/*规定右边表达式结果的计

21、算到其赋给左边目标需经过 6个时间单位延时。*/第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系赋值延时赋值延时v 如果右端在传输给左端之前变化,会发生什么呢?例:assign#4 Cab=Drm;v 惯性时延行为:右端值变化在能够传播到左端前必须至少保持延时间隔;如果在延时间隔内右端值变化,则前面的值不能传输到输出。第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系赋值延时赋值延时v 对于每个时延定义,总共能够指定三类时延值:1)上升时延2)下降时延3)关闭时延v 这三类时延的语法如下:assign#assign#(rise,fall,turn-off)net_value=ex

22、pression;v 三类时延的实例:assign assign#4 Ask=Quiet|Late;/One delay value.assign assign#(4,8)Ask=Quick;/Two delay values.assign assign#(4,8,6)Arb=&DataBus;/Three delay values.assign assign Bus=MemAddr7:4;/No delay value.第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系线网延时线网延时v 延时也可以在线网说明中定义,称线网延时,如:wire wire#5#5 Arb;/定义线网Arb带

23、5个单位延时v 带线网延时的赋值语句:assign#2 Arb=Bod⋒v 赋值语句应在2个时间单位后赋值给Arb,即时刻12。但是因为定义了线网延时,实际对Arb的赋值发生在时刻17(=10+2+5)。第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系例:带参数定义的数值比较器数据流建模例:带参数定义的数值比较器数据流建模module comparator(A,B,AgtB,AeqB,AltB);parameter BUS=7;parameter EQ_DELAY=4,LT_DELAY=8,GT_DELAY=6;input BUS:0 A,B;output AgtB,AeqB,

24、AltB;assign#EQ_DELAY AeqB=(A=B);assign#GT_DELAY AgtB =(A B);assign#LT_DELAY AltB=(A B 0 1 0AB 0 0 1真值表:第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系数值比较器仿真验证数值比较器仿真验证module test_comparator;reg 3:0 A,B;wire AgB,AeB,AlB;comparator#(.BUS(3)test_U(.A(A),.B(B),.AgtB(AgtB),.AeqB(AeB),.AltB(AlB);initial /输入激励信号Begin A=0;B=

25、0;#20 A=4d0;B=4d0;#20 A=4d0;B=4d15;#20 A=4d15;B=4d15;#20 A=4d15;B=4d0;#20 A=4d10;B=4d5;#20 A=4d10;B=4d10;#20 A=4d5;B=4d10;#20 A=4d5;B=4d5;endendmodule测试激励信号(test_comparator.v)被测模块(comparator.v)Modelsim仿真工具波形观测器第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系用波形观测器查看仿真结果用波形观测器查看仿真结果第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系例:奇偶检测电路的数

26、据流建模例:奇偶检测电路的数据流建模module parity_9_bit(D,even,odd);input 8:0 D;output even,odd;assign#(4,3)odd=even;assign#(4,4)even=(D0D1)(D2D3)(D4D5)(D6D7)D8;/assign#(4,4)even=D;采用缩位运算符更简捷endmodule输入D8:0中,若有偶数个0,则输出even为1,输出odd为0;若有奇数个0,则输出even为0,输出odd为1。第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系奇偶检测电路仿真验证奇偶检测电路仿真验证module test_

27、parity;module test_parity;regreg 8:0 D;8:0 D;wire even,odd;wire even,odd;parity_9_bit test_u1(.D(D),parity_9_bit test_u1(.D(D),.even(even),.odd(odd .even(even),.odd(odd););initial /initial /输入激励信号输入激励信号Begin Begin D=0;D=0;#20 D=9b0_0000_0001;#20 D=9b0_0000_0001;/9b0_0000_0001 9b0_0000_0001 保持保持2ns2ns#2#2 D=9b0_0000_0011;D=9b0_0000_0011;#20 D=9b0_0000_0011;#20 D=9b0_0000_0111;#20 D=9b0_0000_1111;#20 D=9b0_1111_0001;#20 D=9b1_1111_0001;#20 D=9b1_0011_1111;#20 D=9b1_1011_1111;#20 D=9b1_1111_1111;endendmodule第四讲第四讲 数据流建模数据流建模西安邮电学院通信工程系用波形观测器查看仿真结果用波形观测器查看仿真结果输入信号持续时间太短,输出未响应

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!