Verilog HDL 的阻塞与非阻塞语句.PDF

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog HDL 的阻塞与非阻塞语句

Electronic technology • 电子技术 Verilog HDL的阻塞与非阻塞语句 文/周莉 Verilog HDL语言的过程块中 module block(clk, a, q1, q2, q3, q4); always @(posedge clk) 摘 赋值语句称为过程赋值语句,其 input clk, a; q2 = #22 a; 要 分为阻塞与非阻塞赋值语句。阻 塞赋值语句没有完成之前会对后 output q1, q2, q3, q4; always @(posedge clk) 面的语句不能被执行,即对后面 reg q1, q2, q3, q4; #22 q3 = a; 的语句造成阻塞;而非阻塞赋值 wire clk, a; always @(posedge clk) 语句是同时进行执行的。除了阻 塞赋值语句以外,延迟时间的写 always @(posedge clk) #22 q4 = a; 法也会造成语句的阻塞与非阻塞。 q1 = #22 a; endmodule 图1:模块中always过程块赋值语句 【关键词】 阻塞赋值 非阻塞赋值 延迟时间 组 合电路 时序电路 1 引言 图2:q1仿真波形 阻塞赋值和非 阻塞赋值语句是 Verilog HDL 语言中的两种过程块赋值语句。在运用 Verilog HDL 语言对硬件电路进行程序设计时, 如果对其理解不清或运用不当,会导致电路达 不到预期的功能而产生错误。赋值语句和时间 延迟相配合,则能更好的对硬件电路进行描述。 对组合电路和时序电路的描述应该采用不同的 图3:q2仿真波形 赋值语句,下面就来讨论一下对不同电路应该 采用何种方式对其进行描述。 #22 #22 #22 #22 2 过程赋值语句 2.1 非阻塞赋值语句 阻塞赋值语句属于过程性赋值语句中的 一种,其在 initial 和 always 过程块中赋值,它 图4:q3仿真波形 只能对寄存器数据类型的变量赋值。阻塞赋值 语句的操作符号为 “= ”,其语法格式是:变 #22 #22 #22 #22 量 = 表达式;当一个语句块中有多条阻塞赋值 语句时,如果前面的赋值语句没有完成,则后 面的语句就不能执行,即对后面的语句造成阻 塞。 在串行语句块中,各条阻塞赋值语句将 按照排列顺序依次执行。阻塞赋值语句执行过 程是先计算等号右端表达式的值,将计算后的 值赋给左边的变量,然后再执行下一条语句。 图5:q4仿真波形 2.2 阻塞赋值语句 值语句右端表达式的值,然后将所有计算值一 值语句搭配时间延迟对信号的描述进行分析。 非阻塞赋值语句的操作符号位 “= ”, 并赋给其左边对应的变量。 输出信号 q 1 是采用非阻塞赋值语句结合 其语法格式是:变量 = 表达式;当一个语句

您可能关注的文档

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档