Verilog行为描述高级语句省名师优质课赛课获奖课件市赛课一等奖课件.ppt
《Verilog行为描述高级语句省名师优质课赛课获奖课件市赛课一等奖课件.ppt》由会员分享,可在线阅读,更多相关《Verilog行为描述高级语句省名师优质课赛课获奖课件市赛课一等奖课件.ppt(40页珍藏版)》请在咨信网上搜索。
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。谢谢,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。谢谢,第四讲,行为描述高级语句,过程语句(,initial、always),块语句(,begin-end、fork-join),赋值语句(,assign、=、=),条件语句(,if-else、case、casez、casex),循环语句(,for、forever、repeat、while),编译指示语句(,define、include、ifdef、else、endif),任务(,task),与 函数(,function),次序执行与并发执行,第1页,Verilog HDL,行为语句,类别,语句,可综合性,过程语句,initial,always,块语句,串行块,begin-end,并行块,fork-join,赋值语句,连续赋值,assign,过程赋,值=、=,条件语句,if-else,case,循环语句,for,repeat,while,forever,编译向导语句,define,include,ifdef,else,endif,第2页,4.1,过程语句,initial,always,在一个模块(,module,),中,使用,initial,和,always,语句次数是不受限制。,initial,语句惯用于仿真中初始化,,,initial,过程块中语句仅执行一次,;,always,块内语句则是不停重复执行,,always,结构在仿真过程中是时刻活动,。,第3页,always,过程语句使用模板,always(),begin,/,过程赋值,/,if-else,,,case,,,casex,,,casez,选择语句,/,while,,,repeat,,,for,循环,/,task,,,function,调用,end,“always”,过程语句通常是带有,触发条件,,触发条件写在敏感信号表示式中,只有当,触发条件满足时,,其后,“,begin-end”,块语句,才能被执行,。,第4页,敏感信号表示式,敏感信号表示式又称事件表示式或敏感信号列表,即当该表示式中变量值改变时,就会引发块内语句执行。所以,敏感信号表示式中应列出影响块内取值全部信号,。若有两个或两个以上信号时,它们之间用,“,or”,连接。,always,(,a),/,当信号,a,值发生改变,always,(,a or b),/,当信号,a,或信号,b,值发生改变,always,(,posedge clock)/,当,clock,上升沿到来时,always,(,negedge clock)/,当,clock,下降沿到来时,always,(,posedge clk or negedge reset),/,当,clk,上升沿到来或,reset,信号下降沿到来,电平敏感,,组合逻辑电路采取,边缘敏感,,时序逻辑用。,不要混用,第5页,敏感信号列表举例,module mux4_1(out,in0,in1,in2,in3,sel);,output out;,input in0,in1,in2,in3;,input1:0 sel;reg out;,always,(in0,,,in1,,,in2,,,in3,,,sel),/,敏感信号列表,case(sel),2b00:out=in0;,2b01:out=in1;,2b10:out=in2;,2b11:out=in3;,default:out=2bx;,endcase,endmodule,4,选1数据选择器,第6页,posedge,和,negedge,关键字,对于时序电路,事件通常是由时钟边缘触发,为表示边缘这个概念,,Verilog,提供了,posedge,和,negedge,关键字来描述。比如:,【例】同时置数、同时清零计数器,module count(out,data,load,reset,clk);,output7:0 out;input7:0 data;,input load,clk,reset;reg7:0 out;,always,(posedge clk),/clk,上升沿触发,begin,if(!reset)out=8h00;/,同时清,0,,低电平有效,else if(load)out=data;/,同时预置,else out=out+1;/,计数,end,endmodule,第7页,4.2,块语句,块语句是由块标志符,begin-end,或,fork-join,界定一组语句,当块语句只包含一条语句时,块标志符能够缺省。,次序块,,以关键字,beginend,将多条语句封装成块。,按次序执行,。,begin,regb,=rega;,regc,=regb;,end,因为,begin-end,块内语句次序执行,在最终,将,regb,、,regc,值都更新为,rega,值,该,begin-end,块执行完后,,regb,、,regc,值是相同。,第8页,并行块,(了解即可),以关键字,fork join,将多条语句封装成块,全部语句并行执行,initial,fork,a=0;,#5 b=1;,#10 c=a,b;,#15 d=b,a;,join,并行块轻易引发竞争,适合用于绝对时间控制,实际建模时,并行块不可综合。用于仿真。,仅用次序块即可,第9页,4,.3,过程赋值语句,行为级赋值语句,必须出现在,initial,和,always,结构中,过程赋值语句左端都必须是,reg,类型,分为阻塞性赋值和非阻塞性赋值,第10页,非阻塞(,non_blocking),赋值方式,赋值符号为“,=,”,如:,b=a;,非阻塞赋值在整个过程块结束时才完成赋值操作,即,b,值并不是立刻就改变。,实际并行,。,阻塞(,blocking),赋值方式,赋值符号为“,=,”,如:,b=a;,阻塞赋值在该语句结束时就马上完成赋值操作,,即,b,值在该条语句结束后立刻改变。,假如在一个块语句中,有多条阻塞赋值语句,那么在前面赋值语句没有完成之前,后面语句就不能被执行,好像被阻塞了(,blocking),一样,所以称为阻塞赋值方式。,实际次序执行。,第11页,阻塞赋值与非阻塞赋值,非阻塞赋值,module non_block(c,b,a,clk);,output c,b;,input clk,a;,reg c,b;,always(posedge clk),begin,b=a;,c=b;,end,endmodule,阻塞赋值,module block(c,b,a,clk);,output c,b;,input clk,a;,reg c,b;,always(posedge clk),begin,b=a;,c=b;,end,endmodule,第12页,阻塞赋值与非阻塞赋值,非阻塞赋值综合结果:,阻塞赋值综合结果,第13页,阻塞赋值与非阻塞赋值,非阻塞赋值仿真波形图,阻塞赋值仿真波形图,第14页,4.4,条件语句,(,if-else,语句),if-else,语句使用方法有以下,3,种:,(1),if(,表示式)语句1;,else,;,/,提议,添加一个空,else,语句预防出现锁存器,(2),if(,表示式)语句1;,else,语句2;,(3),if(,表示式1)语句1;,else if(,表示式2)语句2;,else if(,表示式3)语句3;,else if(,表示式,n),语句,n;,else,语句,n+1;,第15页,关键字为,case,、,default,、,endcase,case,语句结构以下。,case(,敏感表示式),值1:语句1;,/,case,分支项,值2:语句2;,值,n:,语句,n;,default:,语句,n+1;,endcase,case,语句,第16页,注意事项,case,语句中每个分支条件必须不一样,,变量位宽要严格相等,还要使用明确指定宽度方式,,防止使用“,d”,等不指明宽度分支条件。,case,语句中每个分支能够接多条待执行语句,只需要使用,beginend,即可,case,语句中只能有一个,default,语句,而且提议使用,default,,也是为了得到最终综合电路不会生成锁存器。,如,2b01,:,begin,out=a-b;,sum=a+b;,end,第17页,BCD,码,七段数码管显示译码器,module decode4_7(decodeout,indec);,output6:0 decodeout;,input3:0 indec;reg6:0 decodeout;,always(indec),begin,case(indec),/,用,case,语句进行译码,4,d0:decodeout=7b1111110;,4d1:decodeout=7b0110000;,4d2:decodeout=7b1101101;,4d3:decodeout=7b1111001;,4d4:decodeout=7b0110011;,4d5:decodeout=7b1011011;,4d6:decodeout=7b1011111;,4d7:decodeout=7b1110000;,4d8:decodeout=7b1111111;,4d9:decodeout=7b1111011;,default:decodeout=7bx;,endcase end,endmodule,第18页,简易,ALU,电路行为级建模,module my_ALU(out,a,b,select);,output 4:0 out;,input 3:0 a,b;,input 2:0 select;,reg 4:0 out;,always(*),case(select),3b000:out=a;,3b001:out=a+b;,3b010:out=a-b;,3b011:out=a/b;,3b100:out=a%b;,3b101:out=a1;,3b111:out=ab;,default:out=5b00000;,endcase,endmodule,第19页,4,.5,循环语句,repeat,initial,begin,for(i=0;i4;i=i+1),out=out+1;,end,initial,begin,repeat(5),out=out+1;,end,initial,begin,i=0;,while(i0),i=i+1;,end,for,while,在,Verilog,中存在四种类型循环语句,用来控制语句执行次数。这四种语句分别为:,(1),forever:,连续地执行语句;多用在“,initial”,块中,以生成时钟等周期性波形。,(2),repeat:,连续执行一条语句,n,次。,(3),while:,执行一条语句直到某个条件不满足。,(4),for:,有条件循环语句。,第20页,forever,循环,没有条件,永远循环,类似,always,,但使用在,initial,里,比较以下两例,Initial begin,clock=0,;,forever#10 clock=clock,;,end,initial clock=0,;,always#10 clock=clock,;,第21页,用,for,语句描述七人投票表决器,module voter7(pass,vote);,output pass;,input6:0 vote;,reg2:0 sum;integer i;reg pass;,always(vote),begin,sum=0;,for(i=0;i=6;i=i+1),if(votei)sum=sum+1;,if(sum2)pass=1;/,超出,4,人赞成,则,经过,else pass=0;,end,endmodule,第22页,用,repeat,实现8位二进制数乘法,module mult_repeat(outcome,a,b);/,无符号数串行乘法,parameter size=8;inputsize:1 a,b;,output2*size:1 outcome;,reg2*size:1 temp_a,outcome;,regsize:1 temp_b;,always(a or b),begin,outcome=0;temp_a=a;temp_b=b;,repeat(size),/repeat,语句,,size,为循环次数,begin,if(temp_b1)/,假如,temp_b,最低位为,1,,就执行下面加法,outcome=outcome+temp_a;,temp_a=temp_a1;/,操作数,b,右移一位,end,end,endmodule,第23页,4.6,编译指示语句,Verilog,允许在程序中使用特殊编译向导(,Compiler Directives,),语句,在编译时,通常先对这些向导语句进行,“,预处理,”,,然后再将预处理结果和源程序一起进行编译。,向导语句以符号,“”,开头,以区分于其它语句。,Verilog,提供了十几条编译向导语句,如:,define,、,ifdef,、,else,、,endif,、,restall,等。比较惯用有,define,,,include,和,ifdef,、,else,、,endif,等。,第24页,宏替换,define,define,语句用于将一个简单名字或标志符(或称为宏名)来代替一个复杂名字或字符串,其使用格式为:,define,宏名(标志符),字符串,如:,define sum ina+inb+inc+ind,在上面语句中,用简单宏名,sum,来代替了一个复杂表示式,ina+inb+inc+ind,,,采取了这么定义形式后,在后面程序中,就能够直接用,sum,来代表表示式,ina+inb+inc+ind,了。,第25页,文件包含,include,include,是文件包含语句,它可将一个文件全部包含到另一个文件中。其格式为:,include “,文件名,”,使用,include,语句时应注意以下几点:,一个,include,语句只能指定一个被包含文件。,include,语句能够出现在源程序任何地方。被包含文件若与包含文件不在同一个子目录下,必须指明其路径名。,文件包含允许多重包含,比如文件,1,包含文件,2,,文件,2,又包含文件,3,等。,第26页,4.7,任务与函数,任务(,task,),任务定义格式:,task,;,/,注意无故口列表,端口及数据类型申明语句;,其它语句;,endtask,任务调用格式为:,(端口,1,,端口,2,,,),;,需要注意是:任务调用时和定义时端口变量应是一一对应。,第27页,使用任务时,,需,注意,任务,定义与调用须在一个,module,模块内。,定义任务时,,没有端口名列表,,但需要紧接着进行输入输出端口和数据类型说明。,当任务被调用时,任务被激活,。任务调用与模块调用一样经过任务名调用实现,调用时,需列出端口名列表,端口名排序和类型必须与任务定义中相一致。,一个任务能够调用别任务和函数,,能够调用任务和函数个数不限。,第28页,函数目标是返回一个值,以用于表示式计算,函数定义格式:,function ,函数名;,端口申明;,局部变量定义;,其它语句;,endfunction,是一个可选项,假如缺省,则返回值为,1,位存放器类型数据。,函数(,function,),第29页,函数举例,function,7:0 get0,;,input7:0 x;reg7:0 count;,integer i;,begin count=0;,for(i=0;i=7;i=i+1),if(xi=1b0)count=count+1;,get0=count,;,end,endfunction,上面,get0,函数循环查对输入数据,x,每一位,计算出,x,中,0,个数,并返回一个适当值。,第30页,在使用函数时,,需注意,函数定义与调用须在一个,module,模块内,。,函数只允许有输入变量且必须最少有一个,输入变量,,输出变量由函数名本身担任,在定义函数时,需对函数名说明其类型和位宽。,定义函数时,没有端口名列表,但调用函数时,需列出端口名列表,端口名排序和类型必须与定义时相一致。这一点与任务相同,函数能够出现在连续赋值,assign,右端表示式中。,函数不能调用任务,而任务能够调用别任务和函数,,且调用任务和函数个数不受限制。,第31页,任务与函数比较,第32页,4.8,次序执行与并发执行,两个或更多个,“,always,”,过程块、,“,assign,”,连续赋值语句、,实例元件调用,等操作都是,同时执行,。,在,“,always,”,模块内部,其语句假如,是非阻塞赋值,也是并发执行,;而假如是,阻塞赋值,则语句是按照指定次序执行,,语句书写次序对程序执行结果有着直接影响。,第33页,次序执行例子,次序执行模块,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,第34页,次序执行,次序执行模块1仿真波形图,次序执行模块2仿真波形图,第35页,次序执行模块1综合结果,次序执行模块2综合结果,第36页,习,题,1,阻塞赋值和非阻塞赋值有什么本质区分?,2,用连续赋值语句描述一个,4,选,1,数据选择器。,3,用行为语句设计一个,8,位计数器,每次在时钟上升沿,计数器加,1,,当计数器溢出时,自动从零开始重新计数。计数器有同时复位端。,4,设计一个,4,位移位存放器。,5 initial,语句与,always,语句关键区分是什么?,6,分别用任务和函数描述一个,4,选,1,多路选择器。,7,总结任务和函数区分。,第37页,习,题,8.,在,Verilog,中,哪些操作是并发执行,哪些操作是次序执行?,9.,试编写求补码,Verilog,程序,输入是带符号,8,位二进制数。,10.,试编写两个,4,位二进制数相减,Verilog,程序。,11.,有一个比较电路,当输入一位,8421BCD,码大于,4,时,输出为,1,,不然为,0,,试编写出,Verilog,程序。,12.,用,Verilog,设计一个类似,74138,译码器电路,用,Synplify,软件对设计文件进行综合,观察,RTL,级综合视图和门级综合视图。,第38页,试验与设计,1,.,4,4,矩阵键盘检测电路设计,试验要求:用,Verilog,描述,4,4,矩阵键盘检测电路,44,矩阵键盘电路,第39页,2,.,计数器设计,试验要求:设计不一样占空比计数器并进行仿真。,(,1,)对本试验中三个程序进行波形仿真,查看输出波形,比较三个波形区分,并思索源代码区分,比较各输出波形占空比。,(,2,)在完成以上试验基础上,设计一个带进位输出模,24,分频器,要求进位输出端高电平连续,8,个时钟周期,低电平连续,16,个时钟周期,同时含有复位端,复位端低电平有效,进行波形仿真。,第40页,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog 行为 描述 高级 语句 名师 优质课 获奖 课件 市赛课 一等奖
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文