VerilogHDL负责数字电路设计(AI助学版)课件_第1页
VerilogHDL负责数字电路设计(AI助学版)课件_第2页
VerilogHDL负责数字电路设计(AI助学版)课件_第3页
VerilogHDL负责数字电路设计(AI助学版)课件_第4页
VerilogHDL负责数字电路设计(AI助学版)课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

由基本逻辑器件可以进一步构成:加法器选择器比较器译码器以及更为复杂的组合逻辑电路4.2组合逻辑逻辑电路建模4.2.1四位全加器信号名位宽类型描述a4输入四位加数b4输入四位加数c_in1输入低位进位输入sum4输出

相加的和c_out1输出进位输出两个四位数a[3:0]和b[3:0]和一位进位数c_in的加法计算一位全加器abc_insumc_out0000000110010100110110010101011100111111一位全加器的VerilogHDL门级描述modulefulladd(sum,c_out,a,b,c_in);outputsum,c_out;inputa,b,c_in;wires1,c1,s2;xor(s1,a,b);and(c1,a,b);xor(sum,s1,c_in);and(s2,s1,c_in);xor(c_out,s2,c1);endmodule一位全加器的激励模块BAC_INSUMC_OUT0000010010010101100100110101010110111111modulestimulus;regA,B;regC_IN;wireSUM;wireC_OUT;fulladdFA1(SUM,C_OUT,A,B,C_IN);initialbeginB=1‘b0;A=1‘b0;C_IN=1'b0;#5B=1‘b1;A=1‘b0;C_IN=1'b0;#5B=1‘b0;A=1‘b1;C_IN=1'b0;#5B=1‘b1;A=1‘b1;C_IN=1'b0;#5B=1‘b0;A=1‘b0;C_IN=1'b1;#5B=1‘b1;A=1‘b0;C_IN=1'b1;#5B=1‘b0;A=1‘b1;C_IN=1'b1;#5B=1‘b1;A=1‘b1;C_IN=1'b1;

#5;endendmodulemodulestimulus;regA,B;regC_IN;wireSUM;wireC_OUT;fulladdFA1(SUM,C_OUT,A,B,C_IN);initialbeginB=1‘b0;A=1‘b0;C_IN=1'b0;#5B=1‘b1;A=1‘b0;C_IN=1'b0;#5B=1‘b0;A=1‘b1;C_IN=1'b0;#5B=1‘b1;A=1‘b1;C_IN=1'b0;#5B=1‘b0;A=1‘b0;C_IN=1'b1;#5B=1‘b1;A=1‘b0;C_IN=1'b1;#5B=1‘b0;A=1‘b1;C_IN=1'b1;#5B=1‘b1;A=1‘b1;C_IN=1'b1;

#5;endendmodulemodulefulladd4(sum,c_out,a,b,c_in);output[3:0]sum;outputc_out;input[3:0]a,b;inputc_in;wirec1,c2,c3;fulladdfa0(sum[0],c1,a[0],b[0],c_in);fulladdfa1(sum[1],c2,a[1],b[1],c1);fulladdfa2(sum[2],c3,a[2],b[2],c2);fulladdfa3(sum[3],c_out,a[3],b[3],c3);endmodule仿真modulestimulus;reg[3:0]A,B;regC_IN;reg[3:0]SUM;regC_OUT;fulladd4FA1_4(SUM,C_OUT,A,B,C_IN);initialbeginA=4'd0;B=4'd0;C_IN=1'b0;#5A=4'd3;B=4'd4;#5A=4'd2;B=4'd5;#5A=4'd9;B=4'd9;#5A=4'd10;B=4'd15;#5C_IN=1'b1;#5;endendmodule信号名位宽类型描述I11输入备选信号I01输入备选信号A1输入选择信号:为1时,MUX2选择I1输出;

为0时,MUX2选择I0输出MUX21输出输出信号:A为1时,输出I1;A为0时,输出I04.2.2二选一电路分析:控制信号A为高电平,不管I0的值是高电平还是低电平,与门and2的输出S57始终为低电平0。而与门C5的输出o就是I1,或门C6的输出MUX2也就是I1ModelSim仿真moduleMUX2to1_top;regA,I1,I0;wireMUX2;MUX2to1MUX2to11(MUX2,A,I1,I0);initialbeginI0=0;I1=1;endalways#10I0=~I0;always#20I1=~I1;initialbeginA=1;#200A=0;#200A=1;#10$finishi;endendmodulemoduleMUX2to1(MUX2,A,I1,I0);outputMUX2;inputA,I1,I0;wireo,S57,ox;andC5(o,I1,A);andand2(S57,I0,ox);notC8(ox,A);orC6(MUX2,o,S57);endmodule4.2.3多位二选一电路信号名位宽类型描述I14输入被选择数I04输入被选择数S1输入选择信号:为1时,MUX2选择I1输出;

为0时,MUX2选择I0输出MUX4输出输出信号:A为1时,输出I1;A为0时,输出I04个1位2选1电路模型moduleMUX2to1(MUX2,A,I1,I0);outputMUX2;inputA,I1,I0;wireo,S57,ox;andC5(o,I1,A);andand2(S57,I0,ox);notC8(ox,A);orC6(MUX2,o,S57);endmodulemoduleMUX4(MUX,S,I1,I0);output[3:0]MUX2;input[3:0]I1,I0;inputS;MUX2to1m1(MUX2[3],S,I1[3],I0[3]);MUX2to1m2(MUX2[2],S,I1[2],I0[2]);MUX2to1m3(MUX2[1],S,I1[1],I0[1]);MUX2to1m4(MUX2[0],S,I1[0],I0[0]);endmodule4.2.44选1电路modulemux4_to_1(out,i0,i1,i2,i3,s1,s0);outputout;inputi0,i1,i2,i3;inputs1,s0;wires1n,s0n;wirey0,y1,y2,y3;not(s1n,s1);not(s0n,s0);and(y0,i0,s1n,s0n);and(y1,i1,s1n,s0);and(y2,i2,s1,s0n);and(y3,i3,s1,s0);or(out,y0,y1,y2,y3);endmodule4选1选择器的VerilogHDL门级描述(1)逻辑电路图与VerilogHDL门级描述之间的对应关系顶层模块moduleMUX4to1_top;regs0,s1,I0,I1,I2,I3;wireout;MUX4to1MUX4to1(out,s0,s1,I0,I1,I2,I3);initialbeginI0=0;I1=1;I2=0;I3=1;endalways#5I0=~I0;always#10I1=~I1;always#15I2=~I2;always#20I3=~I3;initialbegins1=0;s0=0;#200s1=0;s0=1;#200s1=1;s0=0;#200s1=1;s0=1;#200$finishi;endendmoduleModelSim仿真

4选1选择器的VerilogHDL门级描述(2)modulemux4_to_1(out,i0,i1,i2,i3,s1,s0);outputout;inputi0,i1,i2,i3;inputs1,s0;wirex0,x1;wirey0,y1,y2,y3;MUX2to1A0(x0,s0,i1,i0);MUX2to1A1(x1,s0,i3,i2);MUX2to1A0(out,s1,x1,x0);endmodule逻辑电路图与VerilogHDL门级描述之间的对应关系4.2.5比较器比较器就是两个数的比较,给出等于、大于或小于的比较结果一位比较器一位比较器是对两个一位数进行比较,以确定A=B、A<B或A>B输入输出ABSEqG00010010011010011010modulecompare_top;regA,B;wireS,G,Eq;comparecompare1(S,G,Eq,A,B);initialbeginA=0;B=0;#50B=1;#50B=0;A=1;#50B=1;endendmodulemodulecompare(S,G,Eq,A,B);outputS,G,Eq;inputA,B;andC15(S,A,~B);andC14(G,~A,B);xnorC13(Eq,A,B);endmodule4位比较器在数字电路中最常用的相等比较。比较器就是两个数的比较,给出相等的比较结果。如四位比较器是对两个四位数进行比较,A=B时输出EQ为1,不相等时EQ为0信号名位宽类型描述A4输入比较数B4输入比较数EQ1输出比较结果输出,A与B相等时为1,不相等时为0modulestimulus;reg[7:0]A,B;wireEQ;COMPAREcompare1(EQ,A,B);initialbeginA=0;B=0;#50A=5;B=0;#50A=12;B=9;#50A=27;B=50;#50A=33;B=70;#50A=55;B=99;#50A=99;B=22;#50A=111;B=111;#50A=156;B=44;#50A=187;B=67;#50A=119;B=98;#50A=230;B=110;#50;endendmodulemoduleCOMPARE(EQ,A,B);outputEQ;input[3:0]A,B;wireS19,S20,S21,o;xorC0(S19,A[3],B[3]);xorC1(o,A[2],B[2]);xorC2(S20,A[1],B[1]);xorC3(S21,A[0],B[0]);norC4(EQ,S19,o,S20,S21);endmodule4.2.6译码器译码器是一种具有“翻译”功能的逻辑电路,这种电路能将输入二进制代码的各种状态,按照其原意翻译成对应的输出信号2-4译码器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论