网站大量收购闲置独家精品文档,联系QQ:2885784924

第章 Verilog语句.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第章 Verilog语句

任务与函数的比较 6.8 顺序执行与并发执行 两个或更多个“always”过程块、“assign”持续赋值语句、实例元件调用等操作都是同时执行的。 在“always”模块内部,其语句如果是非阻塞赋值,也是并发执行的;而如果是阻塞赋值,则语句是按照指定的顺序执行的,语句的书写顺序对程序的执行结果有着直接的影响。 顺序执行的例子 顺序执行模块1 module serial1(q,a,clk); output q,a; input clk; reg q,a; always @(posedge clk) begin q=~q; a=~q; end endmodule 顺序执行模块2 module serial2(q,a,clk); output q,a; input clk; reg q,a; always@(posedge clk) begin a=~q; q=~q; end endmodule 顺序执行 顺序执行模块1仿真波形图 顺序执行模块2仿真波形图 顺序执行模块1综合结果 顺序执行模块2综合结果 思考与练习 6.1 试编写求补码的Verilog程序,输入是带符号的8位二进制数。 6.2 试编写两个四位二进制数相减的Verilog程序。 6.3 有一个比较电路,当输入的一位8421BCD码大于4时,输出为1,否则为0。试编写出Verilog程序。 6.4 试编写一个实现3输入与非门的Verilog源程序。 思考与练习 6.5 用Verilog语言设计一个类似74138的译码器电路,用Synplify软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。 6.6 用Verilog语言设计一个功能类似74161的电路,用Synplify软件对设计文件进行综合,观察RTL级综合视图和门级综合视图。 6.7 用Verilog设计一个8位加法器,用Quartus II软件进行综合和仿真。 6.8 用Verilog设计一个8位计数器,用Quartus II软件进行综合和仿真。 第6章 Verilog行为语句 主要内容 ◆ 过程语句(initial、always) ◆ 块语句(begin-end、fork-join) ◆ 赋值语句(assign、=、=) ◆ 条件语句(if-else、case、casez、casex) ◆ 循环语句(for、forever、repeat、while) ◆ 编译指示语句(`define、`include、`ifdef、`else、`endif) ◆ 任务(task)与 函数(function) ◆ 顺序执行与并发执行 Verilog HDL行为语句 类别 语句 可综合性 过程语句 initial ? always √ 块语句 串行块begin-end √ 并行块fork-join ? 赋值语句 持续赋值assign √ 过程赋值=、= √ 条件语句 if-else √ case √ ? 循环语句 for √ repeat ? while ? forever ? ? 编译向导语句 `define √ `include `ifdef, `else, `endif √ 6.1 过程语句 initial always 在一个模块(module)中,使用initial和always语句的次数是不受限制的。initial语句常用于仿真中的初始化,initial过程块中的语句仅执行一次;always块内的语句则是不断重复执行的。 always过程语句使用模板 always @(敏感信号表达式event-expression) begin //过程赋值 //if-else,case,casex,casez选择语句 //while,repeat,for循环 //task,function调用 end “always”过程语句通常是带有触发条件的,触发条件写在敏感信号表达式中,只有当触发条件满足时,其后的“begin-end”块语句才能被执行。 敏感信号表达式 敏感信号表达式又称事件表达式或敏感信号列表,即当该表达式中变量的值改变时,就会引发块内语句的执行。因此敏感信号表达式中应列出影响块内取值的所有信号。若有两个或两个以上信号时,它们之间用“or”连接。 例如: @(a) //当信号a的值发生改变 @(a or b) //当信号a或信号b的值发生改变 @(posedge clock) //当clock 的上升沿到来时 @(negedge clock) //当clock 的下降沿到来时 @(posedge clk

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档