第四讲-数据流建模PPT课件.ppt

上传人:优*** 文档编号:127681121 上传时间:2020-04-04 格式:PPT 页数:34 大小:460KB
返回 下载 相关 举报
第四讲-数据流建模PPT课件.ppt_第1页
第1页 / 共34页
第四讲-数据流建模PPT课件.ppt_第2页
第2页 / 共34页
第四讲-数据流建模PPT课件.ppt_第3页
第3页 / 共34页
第四讲-数据流建模PPT课件.ppt_第4页
第4页 / 共34页
第四讲-数据流建模PPT课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第四讲-数据流建模PPT课件.ppt》由会员分享,可在线阅读,更多相关《第四讲-数据流建模PPT课件.ppt(34页珍藏版)》请在金锄头文库上搜索。

1、第四讲数据流建模 内容 连续赋值语句 assign 表达式与操作数运算符数据流建模赋值延时与线网延时举例 数据流建模 连续赋值语句 assign 连续赋值语句将值赋给线网信号 连续赋值不能为寄存器信号赋值 它的格式如下 简单形式 assignnet value expression 表达式 例 wire 3 0 Z preset clear 线网说明assignZ preset 连续赋值语句连续赋值的简化形式 assignMux S 0 A bz Mux S 1 B bz Mux S 2 C bz Mux S 3 D bz assignMux S 0 A bz assignMux S 1 B

2、bz assignMux S 2 C bz assignMux S 3 D bz 四个语句并行执行 表达式与操作数 表达式由操作数和运算符组成 操作数可以是以下类型中的一种 1 常数 35 4 b10 11 8 h0A 2 参数 parameterLOAD 4 d12 3 线网信号 变量 wireclk 4 寄存器信号 变量 reg 3 0 state 5 位选择信号 变量 state 2 6 部分选择信号 变量 state 2 1 7 存储器单元信号 变量 reg 7 0 mem 255 0 8 函数调用值 time 运算符 运算符优先级 算术运算符 一元或二元加 减 一元加 减 5 4 用

3、于表示操作数正负 二元加 减 a b 3 2 6 1 无符号数加减 wire reg信号和基数格式的整数是无符号数 例 wire 4 0 a b sum sub assigna 4 b1001 assignb 4 b0100 assignsum a b 和sum 4 b1101 assignsub a b 差sub 4 b0101 算术运算符 有符号数加减 integer real变量和十进制整数 实数是有符号数 例integera b sum sub reald1 d reg 5 0 bar initialbegina 10 b 3 d1 3 5 sum a b sum 7sub a b s

4、ub 13d d1 2 3 d 1 2bar 4 d12 bar 6 b110100 12的补码end 算术运算符 乘 除 取模和乘方运算与C语言相似 但 运算只能用于仿真 目前还不能用于电路设计 取模运算结果为余数 结果符号与第一运算符保持一致 例 10 3 结果为 1 10 3 结果为1例 integera b sum sub reald1 d m reg 5 0 bar initialbegina 10 b 3 d1 3 5 sum a b sum 30sub a b 结果取整 sub 3d d1 2 3 d 8 05bar d 2 4 025取整 bar 6 b000100 m d1

5、2 m 12 25end 算术运算符 运算符中有不定态 则一般结果也为不定 例 assignsum 4 b101x 4 b1010 计算结果为sum 4 bxxxx算术表达式结果的长度由最长的操作数决定 例 reg 3 0 Arc Bar 4 b1000 Crt 4 b1100 reg 5 0 Frx Arc Bar Crt Arc 4 b0100 结果的长度为4位 溢出丢弃Frx Bar Crt Frx 6 b010100 结果的长度为6位 溢出存 在Frx 4 位运算符 按操作数的对应位运算 按位取反运算 例 4 b1010 4 b0101 按位与运算 例 3 b110 3 b10 x 3

6、 b100 按位或运算 例 3 b110 3 b10 x 3 b11x 按位异或运算 例 3 b110 3 b10 x 3 b01x 按位异或非 例 3 b110 3 b10 x 3 b10 x二个操作数不等长时 运算结果按长操作数补0或x 例 4 b0110 3 b10 x 4 b011x 缩位 归约 运算符 单目运算符 对操作数逐位运算 运算结果是一位逻辑 运算符 与 a 1 逻辑运算符 表示逻辑关系的 真 1 与 假 0 逻辑与 逻辑或 逻辑非 若操作数不为0 是逻辑真或逻辑1 若操作数为0 则是逻辑假或逻辑0 如果任意一个操作数包含x 结果也为x 注意区别 a b和a b a b为1b

7、it数时等效 其它情况运算结果可能不同 关系运算符 比较两个操作数的大小关系 结果是一位的逻辑值 逻辑值1表示关系成立 逻辑值0表示关系不成立 大于 大于等于 如果任意一个操作数包含x 结果也为x 相等与全等运算符 逐位比较两个操作数 相等运算符 每一位的确定值 0或1 都相等时 关系为真 1 否则为假 0 只要中间存在高阻态 z 或不定态 x 则关系为不定 x 不等运算符 与相等运算相反 全等运算符 把不定态 x 和高阻态 z 看作逻辑状态进行比较 比较结果不存在不定态 一定是1或0 不全等运算符 与全等运算符相反 例 a b 4 b0100 c d 4 b10 x0 则 a b为1 a b

8、为1 c d为x c d为1 逻辑移位运算符 逻辑左移 逻辑右移逻辑移位运算后 空出部分均用0填充 算术左移 算术右移算术右移运算后 空出部分填充1 例 逻辑左移 8 b1101 10018 b01 1001 00逻辑右移 8 b1101 1001 2 8 b00 1101 10算术左移 10 20 6 b110110 6 b101100算术右移 3 1 2 3 b101 3 b110 连接与复制运算符 连接运算是将多组信号用大括号括起来 拼接成一组新信号 例 a 1 b1 b 4 hf c 3 d4 全部转化为二进制 a b c 3 b101 11 b1 1111 100 101复制运算是重

9、复信号的拼接方法 例 a 3 b 2 c d a b b b c d c d 条件运算符 VerilogHDL中唯一的三目运算符 表达式 例 assigntri bus drv enble data 16 hzzzz 若条件表达式为不定态 则结果为后两个表达式的按位操作结果 按位操作的值 相同不变 其余情况为x 例 x 3 b010 3 b011 3 b01x 数据流建模 结构建模主要用于模块间的互连和少量逻辑门的电路描述 复杂电路常用行为描述建模 行为建模重点关注模块的输入 输出的功能 行为 描述 对具体的实现电路细节不去过多关注 用于仿真或留待综合工具处理 数据流建模是基于数据在寄存器间的

10、流动和处理的思想来描述电路 连续赋值语句用于数据流行为建模主要描述组合逻辑电路 数据流方式描述一位全加器 一位全加器 moduleFA Df A B Cin Sum Cout inputA B Cin outputSum Cout assignSum A B Cin assignCout Aendmodule两个连续赋值语句是并发执行的 与其书写的顺序无关 只要连续赋值语句右端表达式中操作数的值变化 即有事件发生 连续赋值语句即被执行 例如 A变化 则两个连续赋值都被计算 即同时对右端表达式求值 并将结果赋给左端目标 数据流方式描述4选1多路选择器 moduleMUX4x1 Z D0 D1 D

11、2 D3 S0 S1 outputZ 端口说明inputD0 D1 D2 D3 S0 S1 端口说明assignZ S1 1 b0 S0 1 b1 D1 D0 S0 1 b1 D3 D2 endmodule 真值表 数据流方式描述4位全加器 modulefulladd4 sum c out a b c in input 3 0 a b inputc int output 3 0 sum outputc out assign c out sum a b c in 左端用连接运算符endmodule 例 1001a0110b 1c in10000 线网说明赋值 连续赋值可作为线网说明本身的一部分

12、这样的赋值被称为线网说明赋值 例如 wire 3 0 Sum 4 b0 wireClear b1 wireA GT B A B B GT A B A 线网说明赋值与连续赋值等效 wireClear assignClear b1 赋值延时与线网延时 如果在连续赋值语句中没有定义延时 如前面的例子 则右端表达式的值立即赋给左端表达式 延时为 带延时定义的连续赋值语句格式 assign delaynet value expression 例 assign 6Ask Quiet Late 规定右边表达式结果的计算到其赋给左边目标需经过6个时间单位延时 先延时后赋值 赋值延时 如果右端在传输给左端之前变

13、化 会发生什么呢 例 assign 4Cab Drm 惯性时延行为 右端值变化在能够传播到左端前必须至少保持延时间隔 如果在延时间隔内右端值变化 则前面的值不能传输到输出 赋值延时 对于每个时延定义 总共能够指定三类时延值 1 上升时延2 下降时延3 关闭时延这三类时延的语法如下 assign rise fall turn off net value expression 三类时延的实例 assign 4Ask Quiet Late Onedelayvalue assign 4 8 Ask Quick Twodelayvalues assign 4 8 6 Arb Nodelayvalue 线

14、网延时 延时也可以在线网说明中定义 称线网延时 如 wire 5Arb 定义线网Arb带5个单位延时带线网延时的赋值语句 assign 2Arb Bod Cap 赋值语句应在2个时间单位后赋值给Arb 即时刻12 但是因为定义了线网延时 实际对Arb的赋值发生在时刻17 10 2 5 例 带参数定义的数值比较器数据流建模 modulecomparator A B AgtB AeqB AltB parameterBUS 7 parameterEQ DELAY 4 LT DELAY 8 GT DELAY 6 input BUS 0 A B outputAgtB AeqB AltB assign E

15、Q DELAYAeqB A B assign GT DELAYAgtB A B assign LT DELAYAltB A B endmodule 真值表 数值比较器仿真验证 moduletest comparator reg 3 0 A B wireAgB AeB AlB comparator BUS 3 test U A A B B AgtB AgB AeqB AeB AltB AlB initial 输入激励信号BeginA 0 B 0 20A 4 d0 B 4 d0 20A 4 d0 B 4 d15 20A 4 d15 B 4 d15 20A 4 d15 B 4 d0 20A 4 d1

16、0 B 4 d5 20A 4 d10 B 4 d10 20A 4 d5 B 4 d10 20A 4 d5 B 4 d5 endendmodule 测试激励信号 test comparator v 被测模块 comparator v Modelsim仿真工具 波形观测器 用波形观测器查看仿真结果 例 奇偶检测电路的数据流建模 moduleparity 9 bit D even odd input 8 0 D outputeven odd assign 4 3 odd even assign 4 4 even D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 assign 4 4 even D 采用缩位运算符更简捷endmodule 输入D 8 0 中 若有偶数个0 则输出even为1 输出odd为0 若有奇数个0 则输出even为0 输出odd为1 奇偶检测电路仿真验证 moduletest parity reg 8 0 D wireeven odd parity 9 bittest u1 D D even even odd odd initial 输入激励信号Be

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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