您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > (有代码)基于libero的数字逻辑设计仿真及验证实验(4-8)
计算机____学院___专业___班________组学号______姓名____协作者______________教师评定_________________实验题目_________基于Libero的数字逻辑设计仿真及验证实验_________1、熟悉EDA工具的使用;仿真基本门电路。2、仿真组合逻辑电路。3、仿真时序逻辑电路。4、基本门电路、组合电路和时序电路的程序烧录及验证。5、数字逻辑综合设计仿真及验证。实验报告1、基本门电路一、实验目的1、了解基于Verilog的基本门电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际门电路芯片74HC00、74HC02、74HC04、74HC08、74HC32、74HC86进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、掌握Libero软件的使用方法。2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任.选一个...)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有..模块及测试平台代码清单//74HC00代码-与非//HC00.vmoduleHC00(A,B,Y);input[4:1]A,B;output[4:1]Y;assignY=~(A&B);endmodule//74HC00测试平台代码//test.v`timescale1ns/1nsmoduletest1();reg[4:1]a,b;wire[4:1]y;HC00u1(a,b,y);initialbegina=4'b0000;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;a=4'b1111;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;endendmodule//74HC02代码-或非//HC02.vmoduleHC02(A,B,Y);input[4:1]A,B;output[4:1]Y;assignY=~(A|B);endmodule//74HC02测试平台代码//test.v`timescale1ns/1nsmoduletest2();reg[4:1]a,b;wire[4:1]y;HC02u2(a,b,y);initialbegina=4'b0000;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;a=4'b1111;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;endendmodule//74HC04代码-非//HC04.vmoduleHC04(A,Y);input[6:1]A;output[6:1]Y;assignY=~A;endmodule//74HC04测试平台代码//test.v`timescale1ns/1nsmoduletest3();reg[6:1]a;wire[6:1]y;HC04u3(a,y);initialbegina=4'b000001;#10a=a1;#10a=a1;#10a=a1;#10a=a1;#10a=a1;endendmodule//74HC08代码-与//HC08.vmoduleHC08(A,B,Y);input[4:1]A,B;output[4:1]Y;assignY=A&B;endmodule//74HC08测试平台代码//test.v`timescale1ns/1nsmoduletest4();reg[4:1]a,b;wire[4:1]y;HC08u4(a,b,y);initialbegina=4'b0000;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;a=4'b1111;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;endendmodule//74HC32代码-或//HC32.vmoduleHC32(A,B,Y);input[4:1]A,B;output[4:1]Y;assignY=A|B;endmodule//74HC32测试平台代码//test.v`timescale1ns/1nsmoduletest5();reg[4:1]a,b;wire[4:1]y;HC32u5(a,b,y);initialbegina=4'b0000;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;a=4'b1111;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;endendmodule//74HC86代码-异或//HC86.vmoduleHC86(A,B,Y);input[4:1]A,B;output[4:1]Y;assignY=A^B;endmodule//74HC86测试平台代码//test.v`timescale1ns/1nsmoduletest6();reg[4:1]a,b;wire[4:1]y;HC86u6(a,b,y);initialbegina=4'b0000;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;a=4'b1111;b=4'b0001;#10b=b1;#10b=b1;#10b=b1;endendmodule2、第一次仿真结果(任选一个门,请注明,插入截图,下同.................)。(将波形窗口背景设为白色..,调整窗口至合适大小,使波形能完整显示,对窗口截图..。后面实验中的仿真使用相同方法处理)异或门:3、综合结果。(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)4、第二次仿真结果(综合后)。回答输出信号是否有延迟,延迟时间约为多少?输出信号有延迟,延迟时间为300ps。5、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。输出信号有延迟,延迟时间是4200ps。没有出现竞争冒险。2、组合逻辑电路一、实验目的1、了解基于Verilog的组合逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、掌握Libero软件的使用方法。2、进行针对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相应的设计、综合及仿真。4、74HC85测试平台的测试数据要求:进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证A、B相等时的比较结果。5、74HC4511设计成扩展型的,即能显示数字0~9、字母a~f。6、提交针对74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个....)的综合结果,以及相应的仿真结果。1、所有模块及测试平台代码清单//74HC148代码//HC148.vmoduleHC148(DataIn,EO,Dataout);input[7:0]DataIn;outputEO;output[2:0]Dataout;reg[2:0]Dataout;regEO;integerI;always@(DataIn)beginDataout=0;EO=1;for(I=0;I8;I=I+1)beginif(DataIn[I])beginDataout=I;EO=0;endendendendmodule//74HC148测试平台代码//test148.v`timescale1ns/1nsmoduletest148;reg[7:0]in;wire[2:0]out;wireEO;initialbeginin=00000001;repeat(9)#20in=in1;endHC148u148(in,EO,out);endmodule//74HC138代码//HC138.vmoduleHC138(A,B,C,G1,G2AN,G2BN,Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0);inputA,B,C;inputG1,G2AN,G2BN;outputY7,Y6,Y5,Y4,Y3,Y2,Y1,Y0;wireY7,Y6,Y5,Y4,Y3,Y2,Y1,Y0;reg[7:0]Eq;wire[7:0]EqN;wire[2:0]DataIn;assignEqN=~Eq;assignDataIn[0]=A;assignDataIn[1]=B;assignDataIn[2]=C;always@(DataInorG1orG2ANorG2BN)beginif(!G1)Eq=8'b11111111;elseif(!(G2AN&G2BN))Eq=8'b11111111;elseEq=1'b1DataIn;endassignY0=EqN[0];assignY1=EqN[1];assignY2=EqN[2];assignY3=EqN[3];assignY4=EqN[4];assignY5=EqN[5];assignY6=EqN[6];assignY7=EqN[7];endmodule//74HC138测试平台代码//test138.v`timescale1ns/10psmoduletest138;regA,B,C;regG1,G2AN,G2BN;wireY0,Y1,Y2,Y3,Y4,Y5,Y6,Y7;initialbeginA=0;repeat(20)#20A=$random;endinitialbeginB=0;repeat(20)#20A=$random;endinitialbeginC=0;repeat(20)#20A=$random;endinitialbeginG1=0;#40G1=1;endinitialbeginG2AN=0;#25G2AN=1;endinitialbeginG2BN=0;#45G2BN=1;endHC138u138(.A(A),.B(B),.C(C),.G1(G1),.G2AN(G2AN),.G2BN(G2BN),.Y0(Y0),.Y1(Y1),.Y2(Y2),.Y3(Y3),.Y4(Y4),.Y5(Y5),.Y6(Y6),.Y7(Y7));endmodule//74HC153代码//HC153.vmoduleHC153(C0,C1,C2,C3,A,B,Y,G);inputC0,C1,C2,C3,A,B,G;outputY;regY;always@(C0orC1orC2orC3orAorB)beginif(G)Y=0;elsecase({A,B})0:Y=C0;1:Y=C1;2:Y=C2;3:Y=C3;default:Y=1'bx;endcaseendendmodule//74HC153测试平台代码//test153.v`timescale1ns/1nsmoduletest153;regC0,C1,C2,C3;regA,B,G;wireY;initialbeginG=1;repeat(20)#20G=0;endinitialbeginA=0;repeat(20)#20A=$random;endini
本文标题:(有代码)基于libero的数字逻辑设计仿真及验证实验(4-8)
链接地址:https://www.777doc.com/doc-6121075 .html