数字逻辑与EDA设计 实验4-8实验报告_第1页
数字逻辑与EDA设计 实验4-8实验报告_第2页
数字逻辑与EDA设计 实验4-8实验报告_第3页
数字逻辑与EDA设计 实验4-8实验报告_第4页
数字逻辑与EDA设计 实验4-8实验报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、 _计算机_学院_网络工程_专业_3_班_组、学号_3111006403_姓名 许树炯 协作者_ 教师评定_实验题目_基于Libra的数字逻辑设计仿真及验证实验_1、 熟悉EDA工具的使用;仿真基本门电路。2、 仿真组合逻辑电路。3、 仿真时序逻辑电路。4、 基本门电路、组合电路和时序电路的程序烧录及验证。5、 数字逻辑综合设计仿真及验证。实验报告1、基本门电路一、实验目的1、了解基于Verilog的基本门电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际门电路芯片74HC00、74HC02、74HC04、74HC08、74HC32、74HC86进行Verilog

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

3、, DataB,Y); input 3:0DataA,DataB; output 3:0Y; assign Y=(A&B);endmodule/74HC00测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench(); reg 4:1 a,b; wire 4:1 y;HC00 u1(a,b,y);initial begin a=4'b0000;b=4'b0001; #10 b=b<<1; #10 b=b<<1; #10 b=b<<1; a=4'b1111;b=4'b000

4、1; #10 b=b<<1; #10 b=b<<1; #10 b=b<<1; endendmodule/74HC02代码-或非module HC02(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=(A|B);endmodule/74HC04代码-非module HC04(A,Y); input 4:1A; output 4:1Y; assign Y=A;endmodule/74HC08代码-与module HC08(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=A&B

5、;endmodule/74HC32代码-或module HC32(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=A|B;endmodule/74HC86代码-异或module HC86(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=AB;endmodule/门电路测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench(); reg 4:1 a,b; wire 4:1 y;HC00 test(a,b,y);initial begin a=4'b0000;b

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

7、使用相同方法处理)与非门:4、第二次仿真结果(综合后)(截图)。回答输出信号是否有延迟,延迟时间约为多少?与非门:输出信号有延迟,延迟时间约为300ps延迟300ps5、第三次仿真结果(布局布线后)(截图)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。与非门:输出信号在开始视延迟3200ps后面延迟4000ps左右由上图分析可以知道,在黄线以右的输出转折点处出现了竞争冒险,总共3次。2、组合逻辑电路一、实验目的1、了解基于Verilog的组合逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际组合逻辑电路芯片74HC148、74HC138、

8、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”。若两数相等,需考虑级联输入(级

9、联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证A、B相等时的比较结果。5、74HC4511设计成扩展型的,即能显示数字09、字母af。6、提交针对74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC138代码/ decoder.vmodule decoder138 (Din,Enable,Eq); input 2:0 Din; input Enable; output 7:0 Eq; reg 7:0 Eq; wire 2:0

10、Din; integer I;always (Din or Enable) begin if(Enable) Eq=0; else for(I=0;I<=7;I=I+1)if(Din=I) EqI=1; else EqI=0; endendmodule/74HC138测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench; reg 2:0Din; reg enable; wire 7:0dataout;initial #400 $finish; initial begin enable=1; #40 enable=0; endinitia

11、l begin repeat(20) #20 dataIn=$random; enddecoder138 test(Din,enable,dataout);endmodule/74HC148代码module encoder148(Din,EO,Dout,EI,GS); input 7:0Din; input EI; output EO; output 2:0Dout; reg EO; reg GS; integer I; always (Din or EI) begin:local if(EI) begin Dout=7; EO=1; GS=1; end else if(Din=16'

12、b11111111) begin Dout=7; EO=0; GS=1; end else begin for(I=0;I<8;I=I+1) begin if(DinI) begin Dout=I; EO=1; GS=0; end end endendmodule/74HC148测试平台代码timeccale 1ns/10psmodule testbench; reg7:0 in; reg EI; wire2:0 out; wire EO,GS; initial begin in='b00000001; repeat(9) #20 in=in<<1; end enco

13、der148 testbench148(in,EO,out,EI,GS);endmodule/74HC153代码module mux4_1_a(D0,D1,D2,D3,Sel0,Sel1,Result);input D0,D1,D2,D3;input Sel0,Sel1;output Result;reg Result;always (D0 or D1 or D2 or D3 or Sll or Sel0)begincase(Sel1,Sel0)0 : Result = D0;1 : Result = D1;2 : Result = D2;3 : Result = D3;default : R

14、esult = 1bx;endcaseendendmodule/74HC153测试平台代码timescale 1ns/1psmodule testbench_4mux_1;reg D0,D1,D2,D3,Sel1,Sel0;wire Result;mux4_1_a DUT(D0,D1,D2,D3,Sel1,Sel0,Result);initialbeginD0=0;D1=0;D2=0;D3=0;Sel1=0;Sel0=0;#100 D0=1;D1=0;D2=0;D3=1;#100 Sel1=0;Sel0=1;#100 Sel1=1;Sel0=0;#100 Sel1=1;Sel0=1;#100;

15、endendmodule/74HC85代码module comparator_4_a(A,B,AGEB); input 3:0 A,B; output AGEB; reg AGEB; always (A or B) begin if(A>=B) AGEB=1; else AGEB=0; endendmodule/74HC85测试平台代码timescale 1ns/10psmodule testbench; reg 3:0 ina,inb; wire AGEB; comparator_4_a testbench_4_a(ina,inb,AGEB); initial begin ina=0;

16、 repeat(20) #20 ina=$random; #20 $finish; end initial begin inb=0; repeat(10) #40 inb=$random; endendmodule/74HC283代码module HC283(A, B,Cin,Sum,Cout); parameter N=4; input N-1:0 A, B; input Cin; output N-1:0 Sum; reg N-1:0 Sum; output Cout; reg Cout; reg N:0 q; always (A or B or Cin) begin:adder inte

17、ger i; q0=Cin; for(i=0;i<=N;i=i+1) begin qi+1=(Ai& Bi)|(Ai&qi)|( Bi&qi); Sumi=Ai Biqi; end Cout=qN; endendmodule/74HC283测试平台代码timescale 1ns/10psmodule testbench; reg 3:0 ina,inb; reg cin; wire 3:0 sum; wire cout; HC283 testbench283(ina,inb,cin,sum,cout); initial begin ina=0; repeat(20

18、) #20 ina=$random; end initial begin inb=0; repeat(10) #40 inb=$random; end initial begin cin=0; #200 cin=1; endendmodule/74HC4511代码module HC4511(A,Seg,LT_N,BI_N,LE); input LT_N,BI_N,LE; input 3:0A; output 7:0Seg; reg 7:0SM_8S; assign Seg=SM_8S; always (A or LT_N or BI_N or LE) begin if(!LT_N) SM_8S

19、=8'b11111111; else if(!BI_N) SM_8S=8'b00000000; else if(LE) SM_8S=SM_8S; else case(A) 4'd0:SM_8S=8'b00111111; 4'd1:SM_8S=8'b00000110; 4'd2:SM_8S=8'b01011011; 4'd3:SM_8S=8'b01001111; 4'd4:SM_8S=8'b01100110; 4'd5:SM_8S=8'b01101101; 4'd6:SM_8S

20、=8'b01111101; 4'd7:SM_8S=8'b00000111; 4'd8:SM_8S=8'b01111111; 4'd9:SM_8S=8'b01101111; 4'd10:SM_8S=8'b01110111; 4'd11:SM_8S=8'b01111100; 4'd12:SM_8S=8'b00111001; 4'd13:SM_8S=8'b01011110; 4'd14:SM_8S=8'b01111001; 4'd15:SM_8S=8'

21、;b01110001; default:; endcase endendmodule/74HC4511测试平台代码timescale 1ns/10psmodule testbench; reg 3:0 a; reg lt_n,bi_n,le; wire 7:0 seg; HC4511 hc4511(a,seg, lt_n,bi_n,le); initial begin a=0; lt_n=1;bi_n=1;le=0; #30 a=4'b0001; #30 a=4'b1000; #30 a=4'b0111; #30 a=4'b1010; #30 a=4'b

22、0101; #30 le=1; #30 bi_n=0; #30 lt_n=0; #20; endendmodule2、第一次仿真结果(任选一个模块,请注明)74HC153模块3、综合结果RTL图4、第二次仿真结果(综合后)。回答输出信号是否有延迟,延迟时间约为多少?延迟300ps5、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。延迟5200ps3、时序逻辑电路一、实验目的1、了解基于Verilog的时序逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际时序逻辑电路芯片74HC74、74HC112、74HC194

23、、74HC161进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、熟练掌握Libero软件的使用方法。2、进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。4、提交针对74HC74、74HC112、74HC161、74HC194(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC74代码/ 74hc74.vmodule d_ff (Set,Reset

24、,Clk,D,Q);input Set,Reset,Clk,D;output Q;reg Q;always (posedge Clk or negedge Reset or negedge Set)beginif(!Reset)begin if(!Set)Q<=D;else Q<=1;end else if(!Set) Q<=0;endendmodule /74HC74测试平台代码/ 74hc74.vtimescale 1ns/1nsmodule testbench;reg D,Reset,Set,Clk;wire Q;d_ff testbench_dff(D,Clk,Q,S

25、et,Reset);initialbeginClk =0;#400 $finish;endparameter clock_period=20;always#(clock_period/2)Clk=Clk;initialbeginD=0;repeat(20)#20 D=$random;endinitialbeginReset=0;repeat(20)#20 Reset=$random;endinitialbeginSet=0;repeat(20)#20 Set=$random;endendmodule/74HC112代码module jk_ff(J,K,Clk,Q,Qn); input J,K,

26、Clk; output Q,Qn; reg Q; assign Qn=Q; always (posedge Clk) case(J,K) 2'b00:Q<=Q; 2'b01:Q<=1'b0; 2'b10:Q<=1'b1; 2'b11:Q<=Q; default:Q<=1'bx; endcaseendmodule/74HC112测试平台代码timescale 1ns/1nsmodule testbench; reg j,k,Clk; wire Q,Qn; parameter clock_period=20; a

27、lways #(clock_period/2) Clk=Clk; initial begin j=0;Clk=0; repeat(20) #20 j=$random; end initial begin k=0; repeat(20) #20 k=$random; end initial #300 $finish; jk_ff testbench_jk(j,k,Clk,Q,Qn);endmodule/74HC161代码module HC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC); input CP; input CEP,CET; output3:0 Qn; input M

28、RN,PEN; input3:0 Dn; output TC; reg3:0 qaux; reg TC; always (posedge CP) begin if(!MRN) qaux<=4'b0000; else if(!PEN) qaux<=Dn; else if(CEP&CET) qaux<=qaux+1; else qaux<=qaux; end always (posedge CP) begin if(qaux=4'b1111 && CET=1) TC=1'b1; else TC=1'b0; end as

29、sign Qn=qaux;endmodule/74HC161测试平台代码timescale 1ns/1nsmodule testbench; reg cp,cep,cet,mrn,pen; reg3:0 dn; wire tc; wire3:0 qn; parameter DELY=20; always #(DELY/2) cp=cp; initial begin cep=1; repeat(15) #DELY cet=$random; end initial begin pen=1; #DELY pen=0; #60 pen=1; end initial begin mrn=1; repea

30、t(20) #15 mrn=$random; end initial #300 $finish; HC161 test(cp,cep,cet,mrn,pen,dn,qn,tc);endmodule/74HC194代码module HC194(Data,Enable,Shiften,Shiftin,Aclr,Clock,Shiftout); input3:0 Data; input Aclr; input Enable; input Shiften; input Shiftin; input Clock; output Shiftout; reg3:0 Qaux; always (posedge

31、 Aclr or posedge Clock) begin if(Aclr) Qaux=0; else if(Enable) Qaux=Data; else if(Shiften) Qaux=Qaux2:0,Shiftin; end assign Shiftout=Qaux3;endmodule/74HC194测试平台代码timescale 1ns/1nsmodule testbench; reg3:0 Data; reg Aclr,Enable,Shiften,Shiftin,Clock; wire Shiftout; parameter clock_period=20; always #(

32、clock_period/2) Clock=Clock; initial #400 $finish; initial begin Data=0; repeat(20) #20 Data=$random; end initial begin Clock=0; Aclr=0; #40 Aclr=1; #100 Aclr=0; end initial begin Enable=0; #100 Enable=1; #100 Enable=0; end initial begin Shiften=0; repeat(20) #20 Shiften=$random; end initial begin S

33、hiftin=0; repeat(10) #40 Shiftin=$random; end shift_reg_piso testbench_piso(Data,Enable,Shiften,Shiftin,Aclr,Clock,Shiftout);endmodule2、第一次仿真结果(任选一个模块,请注明)74HC743、综合结果RTL图4、 第二次仿真结果(综合后)延迟时间为:300ps5、第三次仿真结果(布局布线后) 延迟时间为:5600ps4、基本门电路、组合电路和时序电路的程序烧录及验证一、实验目的1、熟悉利用EDA工具进行设计及仿真的流程。2、熟悉实验箱的使用和程序下载(烧录)及测

34、试的方法。二、实验环境及仪器1、Libero仿真软件。2、DIGILOGIC-2011数字逻辑及系统实验箱。3、Actel Proasic3 A3P030 FPGA核心板及Flash Pro4烧录器。三、实验内容1、新建一个工程文件,将前面已经设计好的74HC00、74HC02、74HC04、74HC08、74HC32、74HC86实例文件导入,在SmartDesign窗口分别添加这6个模块,完成相应连线。按实验指导书P175的附录B.3中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。2、新建

35、一个工程文件,将前面已经设计好的74HC148、74HC138、74HC153、74HC85、74HC283实例文件导入,在SmartDesign窗口分别添加这5个模块,完成相应连线。按实验指导书P176的附录B.4中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。3、新建一个工程文件,将前面已经设计好的74HC4511实例文件导入,在SmartDesign窗口添加这1个模块,完成相应连线。按实验指导书P173的附录B.2中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的

36、引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。4、新建一个工程文件,将前面已经设计好的74HC74、74HC112、74HC194、74HC161实例文件导入,在SmartDesign窗口分别添加这4个模块,完成相应连线。按实验指导书P178的附录B.5中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。四、实验结果和数据处理表4-1 74HC00输入输出状态输入端输出端YABLED逻辑状态00亮101亮110亮111灭0表4-2 74HC02输入输出状态输入端输出端

37、YABLED逻辑状态00011011表4-3 74HC04输入输出状态输入端输出端YALED逻辑状态01表4-4 74HC08输入输出状态输入端输出端YABLED逻辑状态00011011表4-5 74HC32输入输出状态输入端输出端YABLED逻辑状态00011011表4-6 74HC86输入输出状态输入端输出端YABLED逻辑状态00011011表4-7 74HC148输入输出状态控制十进制数字信号输入二进制数码输出状态输出I0I1I2I3I4I5I6I7A2A1A0GSEO1XXXXXXXX 0111111110XXXXXXX00XXXXXX010XXXXX0110XXXX01110XXX

38、011110XX0111110X0111111001111111注:X为任意状态表4-8 74HC138输入输出状态使能输入数据输入译码输出E3A2A1A01XXXXXX1XXXXXX0XXX001000001001001010001011001100001101001110001111注:X为任意状态表4-9 74HC153输入输出状态选择输入数据输入输出使能输入输出S1S01I01I11I21I31YXXXXXX1000XXX0001XXX010X0XX010X1XX001XX0X001XX1X011XXX0011XXX10注:X为任意状态表4-10 74HC85输入输出状态比较输入级联输

39、入输出A3A2A1A0B3B2B0B1IA>BIA=BIA<BA>BA=BA<B1XXX0XXXXXX0XXX1XXXXXX11XX10XXXXX00XX01XXXXX101X100XXXX000X001XXXX11011100XXX00100011XXX1101110100001000100001110111011000000000010111111111001注:X为任意状态表4-11 74HC283输入输出状态进位输入4位加数输入4位被加数输入输出加法结果和进位CinA4A3A2A1B4B3B2B1CoutS4S3S2S1000000110111111111001

40、110010101000110101010111110000111010011001表4-12 74HC4511输入输出状态使能输入数据输入译码输出LEDCBAabcdefg0XXXXXX10XXXXX1100000110000111000101100011110010011001011100110110011111010001101001110101011010111101100110110111011101101111注:X为任意状态表4-13 74HC74输入输出状态输入输出置位输入复位输入CPD1Q01XX10XX11011100XX注:X为任意状态表4-14 74HC112输入输出状态输入输出置位输入复位输入11J1K1Q01XXX10XXX11111101111000XXX注:X为任意

温馨提示

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

评论

0/150

提交评论