第六讲-行为建模.ppt
《第六讲-行为建模.ppt》由会员分享,可在线阅读,更多相关《第六讲-行为建模.ppt(82页珍藏版)》请在咨信网上搜索。
1、第六讲第六讲 行为行为建模建模西安邮电学院通信工程系第第六讲六讲行为建模行为建模内容:v条件语句v分支语句v循环语句v任务与函数v禁止命名块和任务v常用系统任务和函数第一页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)v语法1:if(条件表达式)块语句v条件表达式为逻辑真和逻辑1时执行块语句,其它如0、x、z均为条件不成立。v一条没有else语句的if语句映射到硬件上,形成的是一个锁存器。如:always(enableordada)if(enbale)out=data;enabledataout1dd0 xd第二页,共八十二页。
2、第六讲第六讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)v语法2:if(条件表达式1)块语句1 else if(条件表达式2)块语句2 else if(条件表达式n)块语句n else 块语句n+1v常用于多路选择控制;v条件判断的先后顺序隐含条件的优先级关系;v注意有时电路设计不需要优先级(使用case语句描述可得到并行条件,综合器相关);v可以嵌套使用;v 如无块标识符,else语句与最近的if配对。第三页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)v例:always(enable
3、ordada_aordata_b)/信号有变化执行if语句if(enable)out=data_a;/enable=1,执行elseout=data_b;/enable=0,执行v综合结果将产生一个二选一的多路选择器(MUX)。v等效于语句:assignout=(enable)?data_a:data_b;v条件要完备,否则产生锁存器。第四页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)例:module dff_1(q,d,clear,clk);output q;input d,clear,clk;reg q;always(po
4、sedge clk)/时钟clk上升沿执行if语句操作 if(!clear)/时钟clk上升沿时刻,clear为0,q=0;/则输出q为0。else q=d;/时钟clk上升沿时刻,clear为1,d赋给q。endmodule同步清零D触发器描述第五页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)例:module dff_2(q,d,clear,clk);output q;input d,clear,clk;reg q;always(negedge clear or posedge clk)if(!clear)/clear下升沿
5、时刻,clear为0,q=0;/则输出q为0。与clk无关。else q=d;/时钟clk上升沿时刻,clear为1,d赋给q。endmodule异步清零D触发器第六页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系条件语句(条件语句(ififelseelse)举例:异步清零8位计数器module dff_3(q,clear,clk);output q7:0;input clear,clk;reg q;always(negedge clear or posedge clk)if(!clear)/clear下升沿时刻,clear为0,q=8d0;/则输出q为0。与clk无关。e
6、lse q=q+1;/时钟clk上升沿时刻,clear为1,q+1赋给q。endmodule第七页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系分支语句(分支语句(casecase)v常用于译码和有限状态机的描述。分类:case、casez、casex。v语法:case(敏感表达式)值1:块语句1 值2:块语句2 值n:块语句ndefault:块语句n+1endcasev敏感表达式与各项值的比较是按位作全等比较。第八页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系分支语句(分支语句(casecase)v例:module demo_case(sig);in
7、put sig;always(sig)case(sig)1b1:$display(“signal value is 1”);1b0:$display(“signal value is 0”);1bx:$display(“signal is unknown”);1bz:$display(“signal is high impedence”);endcase endmodule第九页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系分支语句(分支语句(casecase)vcasez:忽略比较表达式两边的z部分vcasex:忽略比较表达式两边的x部分v举例:casez(r3:0)4b
8、011z:表达式1;/不比较Z 4b01xz:表达式2;/不比较Z default:表达式3;endcase第十页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系分支语句(分支语句(casecase)v例:always(selord1ord2ord3ord4)case(sel)2b00:out=d1;2b01:out=d2;2b10:out=d3;2b11:out=d4;endcase4选1多路选择器第十一页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系分支语句(分支语句(casecase)v例:moduledecode(sel,out);input2:0
9、sel;output7:0out;reg7:0out;always(sel)case(sel)3b000:out=8b0000_0001;3b001:out=8b0000_0010;3b010:out=8b0000_0100;3b011:out=8b0000_1000;3b100:out=8b0001_0000;3b101:out=8b0010_0000;3b110:out=8b0100_0000;3b111:out=8b1000_0000;endcaseendmodule3-8译码器第十二页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系分支语句(分支语句(casecase
10、)第十三页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系循环语句循环语句有四种循环语句:vrepeat:将一块语句循环执行确定次数。repeat(次数表达式)vwhile:在条件表达式为真时一直循环执行 while(条件表达式)vforever:重复执行直到仿真结束 forever vfor:在执行过程中对变量进行计算和判断,在条件满足时执行 for(赋初值;条件表达式;计算)综合工具还不支持第十四页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系repeatrepeat语句语句vrepeat:将一块语句循环执行确定次数。repeat(次数表达式)语句v例
11、:/从0增加到128计数显示integercount;initialbegincount=0;repeat(128)begin$dispay(“count=%d”,count);count=count+1;endend第十五页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系1001opax1011opb0000100100010010000000000100100001100011/Parameterizable shift and add multipliermodule multiplier(result,op_a,op_b);parameter size=4;input
12、 size:1 op_a,op_b;output 2*size:1 result;reg 2*size:1 shift_opa,result;reg size:1 shift_opb;always(op_a or op_b)begin result=0;shift_opa=op_a;/零扩展至零扩展至8位位 shift_opb=op_b;repeat(size)begin#10 if(shift_opb1)result=result+shift_opa;shift_opa=shift_opa 1;/Shift right end endendmodule为什么要说明一个size长shift_o
13、pb变量,不直接用op_b变量?repeatrepeat语句语句第十六页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系while语句语句.reg 7:0 tempreg;reg 3:0 count;.count=0;while(tempreg)/统计统计tempreg中连续中连续 1 的个的个数数 begin if(tempreg 0)count=count+1;tempreg=tempreg 1;/Shift right endend.vwhile:只要表达式为真(不为0),则重复执行一条语句(或语句块)while(条件表达式)v例:第十七页,共八十二页。第六讲第六讲 行
14、为行为建模建模西安邮电学院通信工程系例:/*在标志向量flag中(从最低位起)寻找第一个为1的位*/defineTRUE1b1defineFALSE1b0reg15:0flag;integeri;regcontinue;initialbeginflag=16b0010_0000_0000_0000;i=0;continue=TRUE;while(i16)&continue)beginif(flagi)begin$display(“encounteredaTRUEbitatelementnumber%d”,i);continue=FALSE;endi=i+1;endend第十八页,共八十二页。第
15、六讲第六讲 行为行为建模建模西安邮电学院通信工程系beginif(flagi)begin$display(“encounteredaTRUEbitatelementnumber%d”,i);disableblock1;/禁用block1endi=i+1;endend例:命名块的禁用例:命名块的禁用/*在标志向量flag中(从最低位起)寻找第一个为1的位*/reg15:0flag;integeri;regcontinue;initialbeginflag=16b0010_0000_0000_0000;i=0;begin:block1while(i16)第十九页,共八十二页。第六讲第六讲 行为行为
16、建模建模西安邮电学院通信工程系forever语句语句.reg clk;initial begin clk=0;forever begin#5 clk=1;#10 clk=0;endend.vforever:一直执行到仿真结束。forever vforever应该是过程块中最后一条语句。其后的语句将永远不会执行。vforever语句不可综合,通常用于testbench描述。这种行为描述方式可以非常灵活的描述时钟,可以控制时钟的开始时间及周期占空比。仿真效率也高。第二十页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系for语句语句v for:只要条件为真就一直执行。for(赋初
17、值;条件表达式;计算)v例:/val 中中X检测检测for(index=0;index size;index=index+1)begin if(val index=1bx)$display(found an X);end/存储器初始化存储器初始化;“!=0”仿真效率高仿真效率高for(i=size;i!=0;i=i-1)memory i-1=0;/num 阶乘序列阶乘序列factorial=1;for(j=num;j!=0;j=j-1)factorial=factorial*j;第二十一页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系for语句例语句例第二十二页,共八十二页
18、。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系例1:用for语句来初始化memorybegin:init_memreg7:0tempi;for(tempi=0;tempimemsize;tempi=tempi+1)memorytempi=0;end第二十三页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系例2:用for循环语句来实现前面用repeat语句实现的乘法器parametersize=8,longsize=16;regsize:1opa,opb;reglongsize:1result;begin:multintegerbindex;result=0;for(b
19、index=1;bindex=size;bindex=bindex+1)if(opbbindex)result=result+(opa1)if(tempreg0)count=count+1;end第二十五页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系例:defineMAX_STATES32integerstate0:MAX_STATES-1;integeri;initialbeginfor(i=0;i32;i=i+2)statei=0;for(i=1;i32;i=i+2)statei=1;end实现了什么功能?实现了什么功能?第二十六页,共八十二页。第六讲第六讲 行为行为
20、建模建模西安邮电学院通信工程系作业作业设计一个将10M时钟分频为500k的时钟设计一个8位的计数器(带有清零端)第15周中交。第二十七页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系任务与函数任务与函数模块定义module(portlist)时序特性timigspecifications端口说明Portdeclarations输入input双向inout输出output数据类型说明Datatypedeclarations线网类型net参数parameter寄存器类型register电路功能描述Circuitfunctionality子程序子程序subprograms任务任务
21、task函数函数function系统任务和函数系统任务和函数Systemtask&function编译指令Compilerdirectives连续赋值Continuousassignment赋值语句assign过程块过程块Proceduralblocks过程块语句过程块语句initialblockalwaysblock模块实例instantiation第二十八页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系任务与函数任务与函数可以通过把代码分成小的模块或者使用任务和函数,来把一项任务分成许多较小的、易于管理的部分,从而提高代码的重用性。函数任务能调用另一个函数,但不能调用另
22、一个任务任务能调用另一个任务,也能调用另一个函数函数总是在仿真时刻0就开始执行任务可以在非零仿真时刻执行函数一定不能包含任何延迟、事件或者时序控制声明语句任务可以包含延迟、事件或者时序控制声明语句函数至少有一个输入变量,可以有多个输入变量任务可以没有或者有多个输入、输出和双向变量函数只能返回一个值,不能有输出或者双向(inout)变量任务不返回任何值,可以通过输出或者双向变量传递多个值第二十九页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系任务和函数都必须在模块的内部进行定义,其作用的范围仅局限于定义它们的模块。任务用于替代普通的verilog代码,其中可以包含延迟、时序、
23、事件等语法结构,并且可以具有多个输出变量。函数用于代替表示纯组合逻辑的verilog代码,在仿真时刻0就开始执行,只能有一个输出。函数一般用于完成各类转换和常用的计算。任务与函数任务与函数第三十页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系任务与函数任务与函数v任务格式:task 任务名;输入输出端口与类型说明 局部变量说明 块语句 endtaskv必须在模块内调用任务和函数。v可以在任务和函数中声明局部变量,如寄存器、时间、整数、实数和事件,但不能声明线网类型的变量。v在任务和函数中只能使用行为级语句,但是不能包括always和initial块。v所有的输出都是真正的本
24、地寄存器类型的数据。v只有当任务或函数调用并执行完后,才能有返回值。例如:当任务或函数中包含一个forever循环时,就不可能有返回值。v函数格式 function 函数名;输入端口与类型说明;局部变量说明;块语句 endfunction第三十一页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系任务任务用关键字task和endtask进行声明。如果子程序满足下面任意一个条件,则必须使用任务而不能使用函数。子程序中包含延迟、时序或者事件控制结构没有输出或者输出变量的个数大于1没有输入变量使用关键字input、output和inout对任务的输入输出变量进行声明。除了在模块中,任
25、务也可以在其他任务或函数中被调用(函数能调用另外一个函数,但不能调用另一个任务)模块的输入输出端口用来和外部信号相连接,而任务的输入输出变量则用来向任务中传入或从任务中传出变量。第三十二页,共八十二页。第六讲第六讲 行为行为建模建模西安邮电学院通信工程系任务实例任务实例例1/定义一个名为operation的模块,其内部有一个名为bitwise_oper的任务moduleoperation;parameterdelay=10;reg15:0A,B;reg15:0AB_and,AB_or,AB_xor;always(AorB)beginbitwise_oper(AB_and,AB_or,AB_xo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 行为 建模
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Fis****915】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Fis****915】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。