华东理工大学Verilog HDL-EDA4解析.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲 常用 Verilog 语法之二 4.1 逻辑运算符 4.1 逻辑运算符 4.1 逻辑运算符 4.2 关系运算符 4.3 等式运算符 4.3 等式运算符 4.3 等式运算符 4.4 移位运算符 4.5 位拼接运算符 位拼接还可以用嵌套的方式来表达。 {b,{3{a,b}}} //这等同于{b,a,b,a,b,a,b} 用于表示重复的表达式如上例中的4和3,必须是常数表达式。 4.6 缩减运算符 4.7 优先级别 下面对各种运算符的优先级别关系作一总结。见下表: 4.9 赋值语句和块语句 赋值语句 在Verilog HDL语言中,信号有两种赋值方式: (1) 非阻塞(Non_Blocking)赋值方式( 如 b = a; ) 块结束后才完成赋值操作。 b的值并不是立刻就改变的。 这是一种比较常用的赋值方法。(特别在编写可综合模块时) (2) 阻塞(Blocking)赋值方式( 如 b = a; ) 赋值语句执行完后,块才结束。 b的值在赋值语句执行完后立刻就改变的。 在沿触发的always块中使用时,综合后可能会产生意想不到的结果。 4.9 赋值语句和块语句 赋值语句 4.9 赋值语句和块语句 赋值语句 4.9 赋值语句和块语句 块语句 4.9 赋值语句和块语句 顺序块有以下特点: 1) 块内的语句是按顺序执行的,即只有上面一条语句执行完后下面的语句才能执行。 2) 每条语句的延迟时间是相对于前一条语句的仿真时间而言的。 3) 直到最后一条语句执行完,程序流程控制才跳出该语句块。 4.9 赋值语句和块语句 顺序块的格式如下: begin 语句1; 语句2; ...... 语句n; end 4.9 赋值语句和块语句 下面举例说明: 【例4.3】: begin areg = breg; creg = areg; //creg的值为breg的值。 end 从该例可以看出,第一条赋值语句先执行,areg的值更新为breg的值,然后程序流程控制转到第二条赋值语句,creg的值更新为areg的值。因为这两条赋值语句之间没有任何延迟时间,creg的值实为breg的值。 【例4.4】: begin #50 r =1; #50 r = 0; #50 r = 1; #50 r = 0; end 4.9 赋值语句和块语句 并行块有以下四个特点: 块内语句是同时执行的,即程序流程控制一进入到该并行块, 块内语句则开始同时并行地执行。 2) 块内每条语句的延迟时间是相对于程序流程控制进入到块内时的仿真时间的。 3) 延迟时间是用来给赋值语句提供执行时序的。 4) 当按时间时序排序在最后的语句执行完后或一个disable语句执行时,程序流程控制跳出该程序块。 4.9 赋值语句和块语句 并行块的格式如下: fork 语句1; 语句2; ....... 语句n; join 4.9 赋值语句和块语句 【例4.5】: fork #50 r =1; #100 r = 0; #150 r = 1; #200 r = 0; join 4.9 赋值语句和块语句 在VerilgHDL语言中,可以给每个块取一个名字,只需将名字加在关键词begin或fork后面即可。这样做的原因有以下几点。 1) 这样可以在块内定义局部变量,即只在块内使用的变量。 2) 这样可以允许块被其它语句调用,如被disable语句。 3) 在Verilog语言里,所有的变量都是静态的,即所有的变量都只有一个唯一的存储地址,因此进入或跳出块并不影响存储在变量内的值。 4.

文档评论(0)

33ggoup + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档