基于libero的数字逻辑设计仿真及验证实验(共49页).doc

上传人:飞****2 文档编号:14244728 上传时间:2022-05-03 格式:DOC 页数:49 大小:1.81MB
返回 下载 相关 举报
基于libero的数字逻辑设计仿真及验证实验(共49页).doc_第1页
第1页 / 共49页
基于libero的数字逻辑设计仿真及验证实验(共49页).doc_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《基于libero的数字逻辑设计仿真及验证实验(共49页).doc》由会员分享,可在线阅读,更多相关《基于libero的数字逻辑设计仿真及验证实验(共49页).doc(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 计算机_学院_专业_班_组学号_姓名_协作者_ 教师评定_实验题目_基于Libero的数字逻辑设计仿真及验证实验_1、 熟悉EDA工具的使用;仿真基本门电路。2、 仿真组合逻辑电路。3、 仿真时序逻辑电路。4、 基本门电路、组合电路和时序电路的程序烧录及验证。5、 数字逻辑综合设计仿真及验证。实验报告1、基本门电路一、实验目的1、了解基于Verilog的基本门电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际门电路芯片74HC00、74HC02、74HC04、74HC08、74HC32、74HC86进行VerilogHDL设计的方法。二

2、、实验环境Libero仿真软件。三、实验内容1、掌握Libero软件的使用方法。2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC00代码-与非/ HC00.vmodule HC00(A,B,Y);input 4:1A

3、,B;output 4:1Y;assign Y=(A&B);endmodule/74HC00测试平台代码/ test.vtimescale 1ns/1nsmodule test1();reg 4:1a,b;wire 4:1y;HC00 u1(a,b,y);initialbegina=4b0000; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;a=4b1111; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;endendmodule/74HC02代码-或非/ HC02.vmodule HC02(A,B,Y);input 4:1A,B;outp

4、ut 4:1Y;assign Y=(A|B);endmodule/74HC02测试平台代码/ test.vtimescale 1ns/1nsmodule test2();reg 4:1a,b;wire 4:1y;HC02 u2(a,b,y);initialbegina=4b0000; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;a=4b1111; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;endendmodule/74HC04代码-非/ HC04.vmodule HC04(A,Y);input 6:1A;output 6:1Y;assi

5、gn Y=A;endmodule/74HC04测试平台代码/ test.vtimescale 1ns/1nsmodule test3();reg 6:1a;wire 6:1y;HC04 u3(a,y);initialbegina=4b;#10 a=a1;#10 a=a1;#10 a=a1;#10 a=a1;#10 a=a1;endendmodule/74HC08代码-与/ HC08.vmodule HC08(A,B,Y);input 4:1A,B;output 4:1Y;assign Y=A&B;endmodule/74HC08测试平台代码/ test.vtimescale 1ns/1nsmo

6、dule test4();reg 4:1a,b;wire 4:1y;HC08 u4(a,b,y);initialbegina=4b0000; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;a=4b1111; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;endendmodule/74HC32代码-或/ HC32.vmodule HC32(A,B,Y);input 4:1A,B;output 4:1Y;assign Y=A|B;endmodule/74HC32测试平台代码/ test.vtimescale 1ns/1nsmodule test5

7、();reg 4:1a,b;wire 4:1y;HC32 u5(a,b,y);initialbegina=4b0000; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;a=4b1111; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;endendmodule/74HC86代码-异或/ HC86.vmodule HC86(A,B,Y);input 4:1A,B;output 4:1Y;assign Y=AB;endmodule/74HC86测试平台代码/ test.vtimescale 1ns/1nsmodule test6();reg 4:1

8、a,b;wire 4:1y;HC86 u6(a,b,y);initialbegina=4b0000; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;a=4b1111; b=4b0001;#10 b=b1;#10 b=b1;#10 b=b1;endendmodule2、 第一次仿真结果(任选一个门,请注明,插入截图,下同)。(将波形窗口背景设为白色,调整窗口至合适大小,使波形能完整显示,对窗口截图。后面实验中的仿真使用相同方法处理)异或门:3、 综合结果。(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)4、第二次仿真结果(综

9、合后)。回答输出信号是否有延迟,延迟时间约为多少?输出信号有延迟,延迟时间为300ps。5、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。输出信号有延迟,延迟时间是4200ps。没有出现竞争冒险。2、组合逻辑电路一、实验目的1、了解基于Verilog的组合逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、掌握Liber

10、o软件的使用方法。2、进行针对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相应的设计、综合及仿真。4、74HC85测试平台的测试数据要求:进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证A、B相等时的比较结果。5、74HC4511设计成扩展型的,即能显示数字09、字母af。6、

11、提交针对74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个)的综合结果,以及相应的仿真结果。1、所有模块及测试平台代码清单/74HC148代码/HC148.vmodule HC148(DataIn,EO,Dataout);input 7:0 DataIn;output EO;output 2:0 Dataout;reg 2:0 Dataout;reg EO;integer I;always (DataIn)beginDataout=0;EO=1;for(I=0;I8;I=I+1)beginif(DataInI)beginDataout=I;

12、EO=0;endendendendmodule/74HC148测试平台代码/ test148.vtimescale 1ns/1nsmodule test148;reg 7:0 in;wire 2:0 out;wire EO;initialbeginin=;repeat(9)#20 in=in1;endHC148 u148(in,EO,out);endmodule/74HC138代码/HC138.vmodule HC138(A,B,C,G1,G2AN,G2BN,Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0);input A,B,C;input G1,G2AN,G2BN;output Y7,Y6

13、,Y5,Y4,Y3,Y2,Y1,Y0;wire Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0;reg 7:0 Eq;wire 7:0 EqN;wire 2:0DataIn;assign EqN=Eq;assign DataIn0=A;assign DataIn1=B;assign DataIn2=C;always (DataIn or G1 or G2AN or G2BN)beginif(!G1)Eq=8b;else if(!(G2AN&G2BN)Eq=8b;else Eq=1b1DataB)beginQAGB=1;QASB=0;QAEB=0;endelse if(DataADataB)be

14、ginQASB=1;QAGB=0;QAEB=0;endelse if(IAGB&!IASB&!IAEB)beginQAGB=1;QASB=0;QAEB=0;endelse if(!IAGB&IASB&!IAEB)beginQASB=1;QAGB=0;QAEB=0;endelse if(IAEB)beginQAEB=1;QASB=0;QAGB=0;endbeginif(DataA=DataB)if(IAGB&IASB&!IAEB)begin QAGB=0;QASB=0;QAEB=0;endif(!IAGB&!IASB&!IAEB)begin QAGB=1;QASB=1;QAEB=0;endend

15、endendmodule/74HC85测试平台代码/ test85.vtimescale 1ns/1nsmodule test85;reg A3,A2,A1,A0,B3,B2,B1,B0;reg IAGB,IASB,IAEB;wire QAGB,QASB,QAEB;initialbeginA3=0;repeat(20)#20 A3=$random;endinitialbeginA2=0;repeat(20)#20 A2=$random;endinitialbeginA1=0;repeat(20)#20 A1=$random;endinitialbeginA0=0;repeat(20)#20 A

16、0=$random;endinitialbeginB3=0;repeat(20)#20 B3=$random;endinitialbeginB2=0;repeat(20)#20 B2=$random;endinitialbeginB1=0;repeat(20)#20 B1=$random;endinitialbeginB0=0;repeat(20)#20 B0=$random;endinitialbeginIAGB=0;repeat(10)#40 IAGB=$random;endinitialbeginIASB=0;repeat(10)#40 IASB=$random;endinitialbe

17、ginIAEB=0;repeat(10)#40 IAEB=$random;endHC85 u85(.A3 (A3),.A2 (A2),.A1 (A1),.A0 (A0),.B3 (B3),.B2 (B2),.B1 (B1),.B0 (B0),.IAGB (IAGB),.IASB (IASB),.IAEB (IAEB),.QAGB (QAGB),.QASB (QASB),.QAEB (QAEB);Endmodule/74HC283代码/HC283.vmodule HC283(A3,A2,A1,A0,B3,B2,B1,B0,Sigma3,Sigma2,Sigma1,Sigma0,C0,C4);in

18、put A3,A2,A1,A0,B3,B2,B1,B0;input C0;output Sigma3,Sigma2,Sigma1,Sigma0;output C4;reg C4;reg3:0Sigma;wire3:0DataA,DataB;assign DataA0=A0;assign DataA1=A1;assign DataA2=A2;assign DataA3=A3;assign DataB0=B0;assign DataB1=B1;assign DataB2=B2;assign DataB3=B3;always (DataA or DataB or C0)beginC4,Sigma=D

19、ataA+DataB+C0;endassign Sigma0= Sigma0;assign Sigma1= Sigma1;assign Sigma2= Sigma2;assign Sigma3= Sigma3;endmodule/74HC283测试平台代码/ test283.vtimescale 1ns/10psmodule test283;reg A3,A2,A1,A0,B3,B2,B1,B0;reg C0;wire Sigma3,Sigma2,Sigma1,Sigma0;wire C4;initialbeginA3=0;repeat(20)#20 A3=$random;endinitial

20、beginA2=0;repeat(20)#20 A2=$random;endinitialbeginA1=0;repeat(20)#20 A1=$random;endinitialbeginA0=0;repeat(20)#20 A0=$random;endinitialbeginB3=0;repeat(20)#20 B3=$random;endinitialbeginB2=0;repeat(20)#20 B2=$random;endinitialbeginB1=0;repeat(20)#20 B1=$random;endinitialbeginB0=0;repeat(20)#20 B0=$ra

21、ndom;endinitialbeginC0=0;repeat(20)#20 C0=$random;endHC283 u283(.A3 (A3),.A2 (A2),.A1 (A1),.A0 (A0),.B3 (B3),.B2 (B2),.B1 (B1),.B0 (B0),.Sigma3 (Sigma3),.Sigma2 (Sigma2),.Sigma1 (Sigma1),.Sigma0 (Sigma0),.C0 (C0),.C4 (C4);Endmodule/74HC4511代码/HC4511.vmodule HC4511(A,Seg,LT_N,BI_N,LE);input LT_N,BI_N

22、,LE;input3:0A;output7:0Seg;reg7:0SM_8S;assign Seg=SM_8S;always(A or LT_N or BI_N or LE)beginif(!LT_N)SM_8S=8b;else if(!BI_N)SM_8S=8b;else if(LE)SM_8S=SM_8S;elsecase(A)4d0:SM_8S=8b;4d1:SM_8S=8b;4d2:SM_8S=8b;4d3:SM_8S=8b;4d4:SM_8S=8b;4d5:SM_8S=8b;4d6:SM_8S=8b;4d7:SM_8S=8b;4d8:SM_8S=8b;4d9:SM_8S=8b;4d1

23、0:SM_8S=8b;4d11:SM_8S=8b;4d12:SM_8S=8b;4d13:SM_8S=8b;4d14:SM_8S=8b;4d15:SM_8S=8b;default:;endcaseendendmodule/74HC4511测试平台代码/ test4511.vtimescale 1ns/1psmodule test4511;reg 3:0pA;reg pLT_N,pBI_N,pLE;wire 7:0 pSeg;HC4511 u4511(pA,pSeg,pLT_N,pBI_N,pLE);initialbeginpA=0;pLT_N=0;pBI_N=0;pLE=0;#10 pLT_N=

24、0;#10 pLT_N=1;pBI_N=0;#10 pLE=0;pLT_N=1;pBI_N=1;pA=4d0;#10 pA=4d0;#10 pA=4d1;#10 pA=4d2;#10 pA=4d3;#10 pA=4d4;#10 pA=4d5;#10 pA=4d6;#10 pA=4d7;#10 pA=4d8;#10 pA=4d9;#10 pA=4d10;#10 pA=4d11;#10 pA=4d12;#10 pA=4d13;#10 pA=4d14;#10 pA=4d15;endendmodule2、 第一次仿真结果(任选一个模块,请注明)74HC853、综合结果4、第二次仿真结果(综合后)。回答

25、输出信号是否有延迟,延迟时间约为多少?输出信号有延迟,延迟时间为500ps。5、 第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。输出信号有延迟,延迟时间为4700,有出现竞争3、时序逻辑电路一、实验目的1、了解基于Verilog的时序逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际时序逻辑电路芯片74HC74、74HC112、74HC194、74HC161进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、熟练掌握Libero软件的使用方法。2、进行针对74系列时序逻辑电路的

26、设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。4、提交针对74HC74、74HC112、74HC161、74HC194(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC74代码/ HC74.vmodule HC74(D1,D2,CP1,CP2,RD1N,RD2N,SD1N,SD2N,Q1,Q2,Q1N,Q2N);input D1,D2;input RD1N,SD1N,CP1;input RD2N,SD2N,C

27、P2;output Q1,Q1N,Q2,Q2N;reg Q1,Q2;assign Q1N=Q1;assign Q2N=Q2;always (posedge CP1)beginif(!RD1N)Q1=0;else if(!SD1N)Q1=1;else Q1=D1;endalways (posedge CP2)beginif(!RD2N) Q2=0;else if(!SD2N) Q2=1;else Q2=D2;endendmodule/74HC74测试平台代码/ test74.vtimescale 1ns/1nsmodule test74;reg D1,D2,RD1N,RD2N,CP1,CP2,S

28、D1N,SD2N;wire Q1,Q2,Q1N,Q2N;initial beginCP1=0;endparameter clock_period=20;always #(clock_period/2) CP1=CP1;initial beginCP2=0;endalways #(clock_period/2) CP2=CP2;initialbeginD1=0;repeat(20)#20 D1=$random;endinitialbeginD2=0;repeat(20)#20 D2=$random;endinitialbeginRD1N=0;repeat(20)#20 RD1N=$random;

29、endinitialbeginRD2N=0;repeat(20)#20 RD2N=$random;endinitialbeginSD1N=0;repeat(20)#20 SD1N=$random;endinitialbeginSD2N=0;repeat(20)#20 SD2N=$random;endHC74 u74(.CP1 (CP1),.CP2 (CP2),.D1 (D1),.D2 (D2),.RD1N (RD1N),.RD2N (RD2N),.SD1N (SD1N),.SD2N (SD2N),.Q1 (Q1),.Q1N (Q1N),.Q2 (Q2),.Q2N (Q2N);endmodule

30、/74HC112代码/ HC112.vmodule HC112(J1,J2,K1,K2,CPN1,CPN2,RD1N,RD2N,SD1N,SD2N,Q1,Q2,Q1N,Q2N);input J1,J2,K1,K2;input RD1N,SD1N,CPN1;input RD2N,SD2N,CPN2;output Q1,Q2,Q1N,Q2N;reg Q1,Q2;assign Q1N=Q1;assign Q2N=Q2;always (posedge CPN1) beginif(!RD1N) Q1=0;else if(!SD1N) Q1=1;elsecase(J1,K1)2b00:Q1=Q1;2b01

31、:Q1=1b0;2b10:Q1=1b1;2b11:Q1=Q1;default:Q1=1bx;endcaseendalways (posedge CPN2) beginif(!RD2N) Q2=0;else if(!SD2N) Q2=1;elsecase(J2,K2)2b00:Q2=Q2;2b01:Q2=1b0;2b10:Q2=1b1;2b11:Q2=Q2;default:Q2=1bx;endcaseendendmodule/74HC112测试平台代码/ test112.vtimescale 1ns/1nsmodule test112;reg J1,J2,K1,K2,RD1N,RD2N,CPN1

32、,CPN2,SD1N,SD2N;wire Q1,Q2,Q1N,Q2N;initial beginCPN1=0;endparameter clock_period=20;always #(clock_period/2) CPN1=CPN2;initial beginCPN2=0;endalways #(clock_period/2) CPN2=CPN2;initialbeginJ1=0;repeat(20)#20 J1=$random;endinitialbeginK1=0;repeat(20)#20 K1=$random;endinitialbeginJ2=0;repeat(20)#20 J2

33、=$random;endinitialbeginK2=0;repeat(20)#20 K2=$random;endinitialbeginRD1N=0;repeat(20)#20 RD1N=$random;endinitialbeginRD2N=0;repeat(20)#20 RD2N=$random;endinitialbeginSD1N=0;repeat(20)#20 SD1N=$random;endinitialbeginSD2N=0;repeat(20)#20 SD2N=$random;endHC112 u112(.CPN1 (CPN1),.CPN2 (CPN2),.J1 (J1),.

34、K1 (K1),.J2 (J2),.K2 (K2),.RD1N (RD1N),.RD2N (RD2N),.SD1N (SD1N),.SD2N (SD2N),.Q1 (Q1),.Q1N (Q1N),.Q2 (Q2),.Q2N (Q2N);endmodule/74HC161代码/ HC161.vmodule HC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC);input CP;input CEP,CET;output 3:0Qn;input MRN;input PEN;input 3:0Dn;output reg TC;reg 3:0qaux;always (posedge CP

35、)begin if(!MRN) qaux=4b0000; else if(!PEN) qaux=Dn;else if(CEP&CET)qaux=qaux+1; else qaux=qaux; end always (posedge CP) begin if(qaux=4b1111) TC=1b1; else TC=1b0; end assign Qn=qaux; endmodule/74HC161测试平台代码/ test161.vtimescale 1ns/1nsmodule test161;reg CP,CEP,CET,MRN,PEN;reg 3:0Dn;wire 3:0Qn;wire TC;initial beginCP=0;endparameter DELY=20;always #(DELY/2)CP=CP;initialbeginCEP=0;repeat(20)#20 CEP=1;endinitialbeginCET=0;repeat(20)#20 CET=1;endinitialbeginMRN=0;repeat(20)#20 MRN=1;end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁