




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第14章 复习硬件描述语言和数字系统设计2主要内容:14.1 变量类型14.2 赋值语句14.3 Always过程块14.4 组合、时序逻辑Verilog描述3Wire线网是最常用的一种类型网线声明语句中可明确地指定位宽:Wire 7:0 data_in;如果声明语句中没指定位宽,默认位宽为一位。 wire en; assign enerror&wait; assign en=valid|clear; 在出现多个驱动源驱动同一根网线时,输出会被短接在一起,采用wand或者wor类型来实现。14.1 变量类型4寄存器数据类型reg是最常见的数据类型reg类型使用保留字reg加以说明,形式如下:
2、Reg msb: lsb reg1, reg2, . . . reg N;msb和lsb 定义了范围,并且均为常数值表达式。范围定义是可选的;如果没有定义范围,缺省值为1位寄存器。例如:reg 3:0 Sat; /Sat为4 位寄存器。reg Cnt; /位1寄存器。reg 31:0 Kisp, Pisp, Lisp;5Verilog模块两种主要的信号类型: - 寄存器类型:reg 在always 块中被赋值的信号,往往代表 触发器,但不一定是触发器。(数字逻辑电路中常常被综合为D触发器纯组合逻辑电路中被综合为连线) - 连线类型:wire 用 assign 关键词指定的组合逻辑的信号或连线6
3、Verilog中reg与wire的不同点用寄存器 (reg)类型变量生成组合逻辑举例: module rw1( a, b, out1, out2 ) ;input a, b;output out1, out2;reg out1;wire out2; assign out2 = a ; always (b) out1 = b;endmodule aout2BUFFbINVout17用寄存器 ( reg )类型变量生成触发器的例子:module rw2( clk, d, out1, out2 ) ;input clk, d;output out1, out2;reg out1;wire out2;
4、 assign out2 = d & out1; always (posedge clk) begin out1 = d ; endendmodule dout2AND2i1clkout1D QDFFVerilog中reg与wire的不同点8连续/持续赋值语句 连续赋值用于数据流行为建模, 连续赋值语句建模的是组合逻辑电路。14.2赋值语句9连续/持续赋值语句例如, wire 3:0 Z, Preset, Clear; /线网说明 assign Z = Preset & Clear; /连续赋值语句 连续赋值的目标为Z,表达式右端为“Preset & Clear”。 注意连续赋值语句中的关键词
5、assign。10 连续赋值语句在什么时候执行呢? 只要在右端表达式的操作数上有事件(事件为值的变化)发生时,表达式即被计算;如果结果值有变化,新结果就赋给左边的线网。 在上面的例子中,如果Preset或Clear变化,就计算右边的整个表达式。如果结果变化,那么结果即赋值到线网Z。11过程性赋值分两类:1.阻塞性过程赋值2. 非阻塞性过程赋值12过程赋值语句(阻塞式) 赋值操作符是“=”的过程赋值是阻塞性过程赋值。例如: Reg A = 52; 是阻塞性过程赋值。 阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行行前该赋值语句完成执行。如下所示:13过程赋值语句(非阻塞式) 在非阻塞性
6、过程赋值中,使用赋值符号“ =”。例如:begin Load = 32; Reg A = Load; Reg B = Store;end14赋值语句的阻塞和非阻塞性质不会造成赋值语句本身生成的组合逻辑电路有任何不同,但是会影响以后对赋值结果的使用。建议对组合逻辑进行建模使用阻塞式赋值,而对时序逻辑进行建模使用非阻塞式赋值。15两种不同的赋值语句区别要点:非阻塞(non-blocking) 赋值语句 ( b= a): - 块内的赋值语句同时赋值; - b的值被赋成新值a的操作, 是与块内其他 赋值语句同时完成的; - 建议在可综合风格的模块中使用不阻塞赋值。阻塞(blocking) 赋值语句 (
7、 b=a): - 完成该赋值语句后才能做下一句的操作; - b的值立刻被赋成新值a; - 时序电路中硬件没有对应的电路,因而综合结果未知。1614.3 Always过程块Always过程块既可表达组合逻辑也可表达时序逻辑。组合逻辑:always (a or b or c or d)时序逻辑:always ( posedge clk or negedge reset)17组合逻辑:组合逻辑的两种Verilog HDL表示:用 assign 语句assign q = (al=1?) d : 0 ;always过程块的电平触发方式always (al or d) begin if (al=1) q
8、= d ; else q = 0; end14.4 组合、时序逻辑Verilog描述18使用always过程块描述组合逻辑时,注意条件语句的完整性:如: always (al or d) begin if (al=1) q = d ; end如果不加else,则:生成的不是纯组合逻辑。因为当 al=0时,q能保留原来的值,所以生成的电路中有锁存器。19 同时,必须注意电平敏感的信号表是否完全,如: always (a or b or c or d ) begin out = (a & b & c) | (d & e); end 此时生成的不是纯组合逻辑,因为当 e 变化时,out 不能立即跟着变化。只有当a 或 b 或 c 或 d 变化时e 的变化后果才显示出来。可见需要有一个寄存器来储存 e 的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北电线电缆桥架施工方案
- 临床护理不良事件案例分享
- 曲阳路面鹅卵石施工方案
- 上海日播至胜实业有限公司股权估值项目估值报告
- 北方古建筑屋顶施工方案
- 陕西节日彩灯设计施工方案
- 地面混凝土施工方案图例
- 2025年乳味饮品项目发展计划
- 公众参与与环保意识的提升分析
- 低空经济公司技术开发与创新策略
- MOOC 中国传统艺术-篆刻、书法、水墨画体验与欣赏-哈尔滨工业大学 中国大学慕课答案
- 闽教版2023版3-6年级全8册英语单词表
- 中华人民共和国特种设备安全法(节选)
- 篮球比赛计分表
- 施工现场安全隐患检查(附标准规范)
- 吞咽障碍及吞咽功能的评定
- 拱涵计算书-6.0m-1m
- 数字电子技术课程设计报告(数字积分器)
- 高中有机化学必修模块与选修模块的衔接
- BBC美丽中国英文字幕
- 《自然保护区综合科学考察规程》
评论
0/150
提交评论