- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 Verilog设计进阶 Verilog HDL行为语句 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”块语句才能被执行。 敏感信号表达式“event-expression” 敏感信号表达式又称事件表达式或敏感信号列表,即当该表达式中变量的值改变时,就会引发块内语句的执行。因此敏感信号表达式中应列出影响块内取值的所有信号。若有两个或两个以上信号时,它们之间用“or”连接。 例如: @(a) //当信号a的值发生改变 @(a or b) //当信号a或信号b的值发生改变 @(posedge clock) //当clock 的上升沿到来时 @(negedge clock) //当clock 的下降沿到来时 @(posedge clk or negedge reset) //当clk的上升沿到来或reset信号的下降沿到来 敏感信号列表举例(4选1数据选择器) module mux4_1(out,in0,in1,in2,in3,sel); output out; input in0,in1,in2,in3; input[1:0] sel; reg out; always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表 case(sel) 2b00: out=in0; 2b01: out=in1; 2b10: out=in2; 2b11: out=in3; default: out=2bx; endcase endmodule posedge和negedge关键字 对于时序电路,事件通常是由时钟边沿触发的,为表达边沿这个概念,Verilog提供了posedge和negedge关键字来描述。比如: 【例】同步置数、同步清零的计数器 module count(out,data,load,reset,clk); output[7:0] out; input[7:0] data; input load,clk,reset; reg[7:0] out; always @(posedge clk) //clk上升沿触发 begin if(!reset) out=8h00; //同步清0,低电平有效 else if(load) out=data; //同步预置 else out=out+1; //计数 end endmodule 6.2 块语句 块语句是由块标志符begin-end或fork-join界定的一组语句,当块语句只包含一条语句时,块标志符可以缺省。 begin-end串行块中的语句按串行方式顺序执行。 比如: begin regb=rega; regc=regb; end 由于begin-end块内的语句顺序执行,在最后,将regb、regc 的值都更新为rega的值,该begin-end块执行完后,regb、regc 的值是相同的。 6.3 赋值语句 2、过程赋值语句(Procedural Assignments) 过程赋值语句多用于对reg型变量进行赋值。过程赋值有阻塞(blocking)赋值和非阻塞(non_blocking)赋值两种方式。 (1)非阻塞(non_blocking)赋值方式 赋值符号为“=”, 如:b= a; 非阻塞赋值在整个过程块结束时才完成赋值操作,即b的值并不是立刻就改变的。 (2)阻塞(blocking)赋值方式 赋值符号为“=”, 如:b= a; 阻塞赋值在该语句结束时就立即完成赋值操作,即b的值在该条语句结束后立刻改变。如果在一个块语句中,有多条阻塞赋值语句,那么在前面的赋值语句没有完成之前,后面的语句就不能被执行,仿佛被阻塞了(blocking
您可能关注的文档
- C语言程序设计实验指导 唐新来 王萌 第8章文件新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效2新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效3新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效4新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效5新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效6新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效7新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务4网页美化与特效9新.ppt
- Dreamweaver网页设计项目教程 王雪松 项目二 任务5完成首页内容区制作1新.ppt
- DSP 技术及应用 陈金鹰 主编 1新.ppt
- EDA技术与Verilog设计 王金明 冷自强 编著 教案 第7章新.PPT
- EDA技术与Verilog设计 王金明 冷自强 编著 教案 第9章新.ppt
- EDA技术与Verilog设计 王金明 冷自强 编著 教案 第12章新.ppt
- EDA技术与Verilog设计 王金明 冷自强 编著 教案 第13章新.ppt
- EDA技术与实验 李国洪 胡辉 第1章 EDA技术概述新.ppt
- EDA技术与实验 李国洪 胡辉 第2章 可编程逻辑器件与数字系统的设计新.ppt
- EDA技术与实验 李国洪 胡辉 第4章 QuartusⅡ软件的应用新.ppt
- EDA技术与实验 李国洪 胡辉 第5章 VHDL设计基础新.ppt
- EDA技术与应用 陈海宴 第1章 EDA技术概述新.ppt
- EDA技术与应用 陈海宴 第2章 可编程逻辑器件基础新.ppt
文档评论(0)