- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 Verilog设计深入概要1
第5章 Verilog设计深入 ;5.1 过程中的两类赋值语句;5.1 过程中的两类赋值语句;赋值的类型的选择取决于建模的逻辑类型
在时序块的 RTL 代码中使用非阻塞赋值。
非阻塞赋值在块结束后才完成赋值操作,此赋值方式可以避免在仿真出现冒险和竞争现象。
在组合的 RTL 代码中使用阻塞赋值。
使用阻塞方式对一个变量进行赋值时,此变量的值在赋值语句执行完后就立即改变。;阻塞、非阻塞对比;阻塞与非阻塞语句的使用;5.1 过程中的两类赋值语句 ;5.1 过程中的两类赋值语句 ;
非阻塞(non-blocking)赋值方式 ( b= a):
b的值被赋成新值a的操作, 并不是立刻完成的,而是在块结束时才完成;
块内的多条赋值语句在块结束时同时赋值;
硬件有对应的电路。
阻塞(blocking)赋值方式 ( b = a):
b的值立刻被赋成新值a;
完成该赋值语句后才能执行下一句的操作;
硬件没有对应的电路,因而综合结果未知。;总结:阻塞和非阻塞赋值比较;always语句——无限循环语句
always语句在仿真过程中是不断重复执行的,但always语句后跟着的过程块是否执行,则要看它的触发条件是否满足,如满足则运行块一次,如不断满足,则循环执行
格式:
always 时序控制 语句
注意: always语句由于其不断重复执行特性,只有和一定的时序控制结合在一起才有用,如果一个always语句没有时序控制,则这个always语句将回生成一个仿真死锁。如:
always areg = ~areg;
;在过程块中的赋值称为过程赋值。
在过程赋值语句中表达式左边的信号必须是寄存器类型(如reg类型)
在过程赋值语句等式右边可以是任何有效的表达式,数据类型也没有限制。
如果一个信号没有声明则缺省为wire类型。使用过程赋值语句给wire赋值会产生错误。;简单延时;边沿敏感时序;过程语句具有顺序与并行双重性;[例1]顺序执行模块1。
module serial1(q,a,clk);
output q,a;
input clk;
reg q,a;
always @(posedge clk)
begin
q=~q; //阻塞赋值语句
a=~q;
end
endmodule;serial1.vwf;二、语句的并行执行
“always”模块、“assign”语句、实例元件都是同时(即并行)执行的!
它们在程序中的先后顺序对结果并没有影响。
下面 两个例子将两条赋值语句分别放在两个“always”模块中,尽管两个“always”模块顺序相反,但仿真波形完全相同,;[例3.11.3]并行执行模块1。
module parall1(q,a,clk);
output q,a;
input clk;
reg q,a;
always @(posedge clk)
begin
q=~q;
end
always @(posedge clk)
begin
a=~q;
end
endmodule;不完整条件语句与时序电路的关系;;;5.3 移位寄存器设计 ;5.3.2 模式可控的移位寄存器设计 ;移位运算符;5.3.3 使用移位操作符设计移位寄存器;5.4 乘法器设计及相关语句应用 ;5.4.2 整数型寄存器类型定义;5.4 乘法器设计及相关语句应用 ;一、for语句;[例]用for语句描述的7人投票表决器:若超过4人(含4人)投赞成票,则表决通过。;voter7.vwf;[例] 用for语句初始化memory。;mult_for.v;mult_for.vwf(功能仿真);5.4 乘法器设计及相关语句应用 ;
连续执行一条或多条语句n次。;[例]用repeat语句和移位操作实现两个8位二进制数乘法;mult_repeat.vwf(功能仿真);1.while语句
有条件地执行一条或多条语句。
首先判断循环执行条件表达式是否为真。若为真,则执行后面的语句或语句块;然后再回头判断循环执行条件表达式是否为真,若为真,再执行一次后面的语句;如此不断,直到条件表达式不为真。;注1:首先判断循环执行条件表达式是否为真,若不为真,则其后的语句一次也不被执行!
注2:在执行语句中,必须有一条改变循环执行条件表达式的值的语句!
注3:while语句只有当循环块有事件控制(即@(posedge cl
您可能关注的文档
- 第5章 中国山水画鉴赏2概要1.ppt
- 教学基本功2014概要1.ppt
- 第5章 关系数据库标准语言—SQL概要1.ppt
- 教学设计 装饰画概要1.doc
- 教学设计(选修 )概要1.ppt
- 教你讲故事概要1.pptx
- 第4课触摸美丽概要1.ppt
- 教师发展规划概要1.doc
- 教学设计三PPT概要1.ppt
- 教师发展概论概要1.ppt
- 护理学相关知识复习测试卷共三套.doc
- 护理学相关知识复习试题含答案(3套).doc
- 2025届高考语文复习:补写句子 课件.pptx
- 气压带和风带对气候的影响(第1课时)(教学设计).docx
- 气压带和风带对气候影响教学设计2024-2025学年高中地理人教版(2019)选择性必修1.docx
- 《故都的秋》课件 2024-2025学年统编版高中语文必修上册.pptx
- 《屈原列传》课件 2024-2025学年统编版高中语文选择性必修中册.pptx
- 《巫溪家乡文化》课件-2024-2025学年高一语文同步备课课件(统编版必修上册).pptx
- 《苏武传》课件 2023-2024学年统编版高中语文选择性必修中册.pptx
- 郑州中控ZKTime8.3 WEB考勤软件培训文档.pptx
文档评论(0)