资源描述:
《数字数字系统设计7.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、【例1】调用门元件实现的1位半加器modulehalf_add1(a,b,sum,cout);inputa,b;outputsum,cout;and(cout,a,b);xor(sum,a,b);endmodule【例2】数据流方式描述的1位半加器modulehalf_add2(a,b,sum,cout);inputa,b;outputsum,cout;assignsum=a^b;assigncout=a&b;endmodule【例3】采用行为描述的1位半加器modulehalf_add3(a,b,sum,cout);inputa,b;outputsum,cout;regsum,cout;a
2、lways@(aorb)begincase({a,b})//真值表描述2'b00:beginsum=0;cout=0;end2'b01:beginsum=1;cout=0;end2'b10:beginsum=1;cout=0;end2'b11:beginsum=0;cout=1;endendcaseendendmodule【例4】采用行为描述的1位半加器modulehalf_add4(a,b,sum,cout);inputa,b;outputsum,cout;regsum,cout;always@(aorb)beginsum=a^b;cout=a&b;endendmodule【例5】调用门元
3、件实现的1位全加器modulefull_add1(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;wires1,m1,m2,m3;and(m1,a,b),(m2,b,cin),(m3,a,cin);xor(s1,a,b),(sum,s1,cin);or(cout,m1,m2,m3);endmodule【例6】数据流描述的1位全加器modulefull_add2(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;assignsum=a^b^cin;assigncout=(a&b)
4、(b&cin)
5、(cin&a
6、);endmodule【例7】1位全加器modulefull_add3(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;assign{cout,sum}=a+b+cin;endmodule【例8】行为描述的1位全加器modulefull_add4(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;regsum,cout;//在always块中被赋值的变量应定义为reg型regm1,m2,m3;always@(aorborcin)beginsum=(a^b)^cin;m1=a&b;m2=b&cin;m3=a&
7、cin;cout=(m1
8、m2)
9、m3;endendmodule【例9】结构描述的4位级连全加器`include"full_add1.v"moduleadd4_1(sum,cout,a,b,cin);output[3:0]sum;outputcout;input[3:0]a,b;inputcin;full_add1f0(a[0],b[0],cin,sum[0],cin1);//级连描述full_add1f1(a[1],b[1],cin1,sum[1],cin2);full_add1f2(a[2],b[2],cin2,sum[2],cin3);full_add1f3(a[3],b[3],cin
10、3,sum[3],cout);endmodule【例10】数据流描述的4位全加器moduleadd4_2(cout,sum,a,b,cin);output[3:0]sum;outputcout;input[3:0]a,b;inputcin;assign{cout,sum}=a+b+cin;endmodule【例11】行为描述的4位全加器moduleadd4_3(cout,sum,a,b,cin);output[3:0]sum;outputcout;input[3:0]a,b;inputcin;reg[3:0]sum;regcout;always@(aorborcin)begin{cout,s
11、um}=a+b+cin;endendmodule【例12】非流水线方式8位全加器moduleadder8(cout,sum,ina,inb,cin,clk);output[7:0]sum;outputcout;input[7:0]ina,inb;inputcin,clk;reg[7:0]tempa,tempb,sum;regcout;regtempc;always@(posedgeclk)begintempa