《条件语句、循环语句、块语句和生成语句.ppt》由会员分享,可在线阅读,更多相关《条件语句、循环语句、块语句和生成语句.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 条件语句、循环语句、块语句和生成语句5.1 条件语句(if else 语句)5.1 条件语句(if else 语句)5.1 条件语句(if else 语句)5.1 条件语句(if else 语句)5.1 条件语句(if else 语句)5.1 条件语句(if else 语句)5.2 case语句5.2 case语句5.2 case语句5.2 case语句5.2 case语句举例reg 3:0 rega;reg 7:0 result;case(rega)4 d0:result=7 b10111111;4 d1:result=7 b10000110;4 d2:result=7 b11011
2、011;4 d3:result=7 b11001111;4 d4:result=7 b11000110;4 d5:result=7 b11101101;4 d6:result=17 b1111101;4 d7:result=7 b10000111;4 d8:result=7 b11101111;4 d9:result=7 b11111111;default:result=7 bx;endcaseagdbcfebit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0g f e d c b aV+0 LED 不亮1 LED 亮LED 驱动原理5.2 case语句举例reg 3
3、:0 rega;reg 7:0 result;case(rega)4 d0:result=7 b10111111;4 d1:result=7 b10000110;4 d2:result=7 b11011011;4 d3:result=7 b11001111;4 d4:result=7 b11000110;4 d5:result=7 b11101101;4 d6:result=17 b1111101;4 d7:result=7 b10000111;4 d8:result=7 b11101111;4 d9:result=7 b11111111;default:result=7 bx;endcase
4、agdbcfebit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0g f e d c b a5.2 case语句举例reg7:0 ir;casez(ir)8 b1?:instruction1(ir);8 b01?:instruction2(ir);8 b00010?:instruction3(ir);8 b000001?:instruction4(ir);endcase 5.2 case语句举例reg7:0 ir;casez(ir)8 b1?:instruction1(ir);8 b01?:instruction2(ir);8 b00010?:instruction3
5、(ir);8 b000001?:instruction4(ir);endcase 5.2 case语句举例module mux4_to_1(out,i0,i1,i2,i3,s1,s0);output out;/根据输入/输出图的端口声明input i0,i1,i2,i3;input s1,s0;reg out;/把输出变量声明为寄存器类型/任何输入信号改变,都会引起输出信号的重新计算/使输出out 重新计算的所有输入信号必须写入 always(.)的变量列表中 always(s1 or s0 or i0 or i1 or i2 or i3)begincase(s1,s0)2b00:out=i0
6、;2b01:out=i1;2b10:out=i2;2b11:out=i3;default:out=1bx;endcaseendendmoduleif、case语句正确用法always(al or d)/有锁存器begin if(al)q=d;endalways(al or d)/无锁存器begin if(al)q=d;else q=0;endalways(sel1:0 or a or b)case(sel1:0)2b00:q=a;2b11:q=b;endcase/有锁存器always(sel1:0 or a or b)case(sel1:0)2b00:q=a;2b11:q=b;default:
7、q=1b0;endcase/无锁存器5.5 循环语句5.5 循环语句5.5 循环语句parameter size=8,longsize=16;reg size:1 opa,opb;reg longsize:1 result;begin:multreg longsize:1 shift_opa,shift_opb;shift_opa=opa;shift_opb=opb;result=0;repeat(size)beginif(shift_opb1)result=result+shift_opa;shift_opa=shift_opa 1;endend八位乘法器5.5 循环语句5.5 循环语句5.5 循环语句5.5 循环语句parameter size=8,longsize=16;regsize:1 opa,opb;reglongsize:1 result;begin:multinteger bindex;result=0;for(bindex=1;bindex=size;bindex=bindex+1)if(opbbindex)result=result+(opa(bindex-1);end八位乘法器5.6 顺序块和并行块赋值语句和块语句5.7 生成块语句5.7 生成块语句