计算机学院计算机科学与技术专业14级1班学号3114005811姓名梁智斌__教师评定_________________实验题目_________基于Libero的数字逻辑设计仿真及验证实验_________1、熟悉EDA工具的使用;仿真基本门电路。2、仿真组合逻辑电路。3、仿真时序逻辑电路。4、基本门电路、组合电路和时序电路的程序烧录及验证。5、数字逻辑综合设计仿真及验证。1实验报告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代码-与非moduleHC00(A,B,Y);input[4:1]A,B;output[4:1]Y;assignY=~(A&B);//与非endmodule//74HC00测试平台代码`timescale1ns/1nsmoduletestbench();reg[4:1]a,b;2wire[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代码-或非modulehc02(A,B,Y);inputA,B;outputY;assignY=~(A|B);//或非endmodule//74HC02测试平台代码`timescale1ns/1nsmoduletest74hc02;rega,b;wirey;hc02u02(a,b,y);initialbegin#20a=0;b=0;#20a=1;#20b=1;#20b=0;endendmodule//74HC04代码-非modulehc04(A,Y);inputA;outputY;assignY=~A;3endmodule//74HC04测试平台代码`timescale1ns/1nsmoduletest74hc04;rega;wirey;hc04u04(a,y);initialbegin#20a=0;#20a=1;endendmodule//74HC08代码-与moduleHC08(A,B,Y);inputA,B;outputY;assignY=A&B;endmodule//74HC08测试平台代码`timescale1ns/1nsmoduletest74HC08;rega,b;wirey;HC08u08(a,b,y);initialbegin#20a=0;b=0;#20b=1;#20a=1;#20b=0;endendmodule//74HC32代码-或moduleHC32(A,B,Y);inputA,B;outputY;assignY=A||B;endmodule//74HC32测试平台代码`timescale1ns/1ns4moduletest74HC32;rega,b;wirey;HC32u32(a,b,y);initialbegin#20a=0;b=0;#20b=1;#20a=1;#20b=0;endendmodule//74HC86代码-异或moduleHC86(A,B,Y);inputA,B;outputY;assignY=(~A&B)||(~B&A);endmodule//74HC86测试平台代码`timescale1ns/1nsmoduletest74HC86;rega,b;wirey;HC86u86(a,b,y);initialbegin#20a=0;b=0;#20b=1;#20a=1;#20b=0;endendmodule2、第一次仿真结果(任选一个门,请注明,插入截图,下同.................)。(将波形窗口背景设为白色..,调整窗口至合适大小,使波形能完整显示,对窗口截图..。后面实验中的仿真使用相同方法处理)注:截图为74HC8653、综合结果(截图..)。(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)4、第二次仿真结果(综合后)(截图..)。回答输出信号是否有延迟,延迟时间约为多少?6答:信号存在延时,延时约为0.3ns5、第三次仿真结果(布局布线后)(截图..)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。答:信号存在延时,延时约为4.2存在竞争冒险72、组合逻辑电路一、实验目的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代码moduleHC148(DataIn,EO,EI,GS,Dataout);input[7:0]DataIn;inputEI;outputGS;outputEO;output[2:0]Dataout;reg[2:0]Dataout;regEO;regGS;8integerI;always@(DataInorEI)beginif(EI)beginDataout=7;EO=1;GS=1;endelseif(DataIn==8'b11111111)beginDataout=7;EO=0;GS=1;endelsebeginfor(I=0;I8;I=I+1)if(~DataIn[I])beginDataout=~I;EO=1;GS=0;endendendendmodule//74HC148测试平台代码`timescale1ns/10psmoduletest74HC148;reg[7:0]in;regei;wireeo;wiregs;wire[2:0]out;HC148u148(in,eo,ei,gs,out);initialbeginei=1;#10ei=0;#10in=255;#10in=8'b11111110;repeat(8)9#10in=in1;endendmodule//74HC138代码moduledecoder138(DataIn,E1,E2,E3,Dataout);input[2:0]DataIn;inputE1;inputE2;inputE3;output[7:0]Dataout;reg[7:0]Dataout;always@(DataInorE1orE2orE3)if(E1==1||E2==1||E3==0)Dataout=255;elseDataout=~(1'b1DataIn);endmodule//74HC138测试平台代码`timescale1ns/10psmoduletest74HC138;reg[2:0]in;rege1;rege2;rege3;wire[7:0]out;decoder138u(in,e1,e2,e3,out);initialbeginin=0;repeat(10)#20in=$random;endinitialbegine1=1;#20e1=0;endinitialbegine2=1;#40e2=0;end10initialbegine3=0;#60e3=1;endendmodule//74HC153代码moduleHC153(S1,S0,n0,n1,n2,n3,nE,nY);inputS1,S0,nE;inputn0,n1,n2,n3;outputnY;regnY;always@(S1orS0orn0orn1orn2orn3ornE)if(nE)nY=0;elsecase({S1,S0})0:nY=n0;1:nY=n1;2:nY=n2;3:nY=n3;endcaseendmodule//74HC153测试平台代码`timescale1ns/10psmoduletest74HC153;regS1,S0,n0,n1,n2,n3,nE;wirenY;integerI;HC153u153(S1,S0,n0,n1,n2,n3,nE,nY);initialbeginnE=1;n0=0;n1=0;n2=0;n3=0;#10nE=0;endinitialfor(I=0;I4;I=I+1)#10{S1,S0}=I;initialbegin#15n0=1;#10n1=1;11#10n2=1;#10n3=1;endendmodule//74HC85代码moduleHC85(A3,A2,A1,A0,B3,B2,B1,B0,QAGB,QASB,QAEB,IAGB,IASB,IAEB);inputA3,A2,A1,A0,B3,B2,B1,B0,IAGB,IASB,IAEB;outputQAGB,QASB,QAEB;regQAGB,QASB,QAEB;wire[3:0]DataA,DataB;assignDataA={A3,A2,A1,A0};assignDataB={B3,B2,B1,B0};always@(DataAorDataBorIAGBorIASBorIAEB)beginif(DataADataB)beginQAGB=1;QASB=0;QAEB=0;endelseif(DataADataB)beginQAGB=0;QASB=1;QAEB=0;endelseif(IAGB&!IASB&!IAEB)beginQAGB=1;QASB=0;QAEB=0;endelseif(!IAGB&IASB&!IAEB)beginQAGB=0;QASB=1;QAEB=0;endelseif(IAEB)beginQAGB=0;QASB=0;QAEB=1;endelseif(IAGB&IASB&!IAEB)beginQAGB=0;QASB=0;QAEB=0;endelseif(!IAGB&!IASB&!IAEB)beginQAGB=1;QASB=1;QAEB=0;12endendendmodule//74HC85测试平台代码`timescale1ns/10psmoduletest74HC85;regA3,