资源描述:
《《Verilog设计实例》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电大学微电子系VerilogHDL模块设计实例1.组合逻辑电路设计实例:[例1]八位带进位端的加法器的设计实例(利用简单的算法描述)moduleadder_8(cout,sum,a,b,cin);outputcout;output[7:0]sum;inputcin;input[7:0]a,b;assign{cout,sum}=a+b+cin;endmodule[例2]指令译码电路的设计实例(利用电平敏感的always块来设计组合逻辑)//操作码的宏定义`defineplus3'd0`defineminus3'd1`defineband3
2、'd2`definebor3'd3`defineunegate3'd4modulealu(out,opcode,a,b);output[7:0]out;input[2:0]opcode;input[7:0]a,b;reg[7:0]out;always@(opcodeoraorb)//用电平敏感的always块描述//组合逻辑begincase(opcode)//算术运算`plus:out=a+b;`minus:out=a-b;//位运算`band:out=a&b;`bor:out=a
3、b;//单目运算`unegate:out=~a;defau
4、lt:out=8'hx;endcaseendendmodule[例3].利用task和电平敏感的always块设计比较后重组信号的组合逻辑.modulesort4(ra,rb,rc,rd,a,b,c,d);parametert=3;output[t:0]ra,rb,rc,rd;input[t:0]a,b,c,d;reg[t:0]ra,rb,rc,rd;always@(aorborcord)//用电平敏感的always块描述组合逻辑beginreg[t:0]va,vb,vc,vd;{va,vb,vc,vd}={a,b,c,d};sort2(va
5、,vc);sort2(vb,vd);sort2(va,vb);sort2(vc,vd);sort2(vb,vc);{ra,rb,rc,rd}={va,vb,vc,vd};endtasksort2;inout[t:0]x,y;reg[t:0]tmp;if(x>y)begintmp=x;x=y;y=tmp;endendtaskendmodule[例4].比较器的设计实例(利用赋值语句设计组合逻辑)modulecompare(equal,a,b);parametersize=1;outputequal;input[size-1:0]a,b;assi
6、gnequal=(a==b)?1:0;endmodule[例5].3-8译码器设计实例(利用赋值语句设计组合逻辑)moduledecoder(out,in);output[7:0]out;input[2:0]in;assignout=1‘b1<7、)begin:localintegeri;out=0;/*returnsthevalueofthehighestbitnumberturnedon*/for(i=0;i<8;i=i+1)beginif(in[i])beginout=i;endendendendmodule编码器设计方案之二:moduleencoder2(none_on,out2,out1,out0,h,g,f,e,d,c,b,a);inputh,g,f,e,d,c,b,a;outputnone_on,out2,out1,out0;wire[3:0]outvec;assigno
8、utvec=h?4'b0111:g?4'b0110:f?4'b0101:e?4'b0100:d?4'b0011:c?4'b0010:b?4'b0001:a?4'b0000:4'b1000;assignnone_on=outvec[3];assignout2=outvec[2];assignout1=outvec[1];assignout0=outvec[0];endmodule编码器设计方案之三:moduleencoder3(none_on,out2,out1,out0,h,g,f,e,d,c,b,a);inputh,g,f,e,d,c,b,
9、a;outputout2,out1,out0;outputnone_on;reg[3:0]outvec;assign{none_on,out2,out1,out0}