1、 _计算机_学院_网络工程_专业_3_班_组、学号_3111006403_姓名 许树炯 协作者_ 教师评定_实验题目_基于 Libra 的数字逻辑设计仿真及验证实验 _1、 熟悉 EDA 工具的使用;仿真基本门电路。2、 仿真组合逻辑电路。3、 仿真时序逻辑电路。4、 基本门电路、组合电路和时序电路的程序烧录及验证。5、 数字逻辑综合设计仿真及验证。1实验报告1、基本门电路一、实验目的1、了解基于 Verilog 的基本门电路的设计及其验证。2、熟悉利用 EDA 工具进行设计及仿真的流程。3、学习针对实际门电路芯片 74HC00、74HC02、74HC04、74HC08、74HC32 、74H
2、C86 进行VerilogHDL 设计的方法。二、实验环境Libero 仿真软件。三、实验内容1、掌握 Libero 软件的使用方法。2、进行针对 74 系列基本门电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程) ,完成74HC00、74HC02、74HC04、74HC08、74HC32 、74HC86 相应的设计、综合及仿真。4、提交针对 74HC00、74HC02、74HC04、74HC08、74HC32 、74HC86 (任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC00 代码-与非/
3、 74HC00.vmodule HC00(DataA, DataB,Y);input 3:0DataA,DataB;output 3:0Y;assign Y=(Aendmodule2/74HC00 测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench();reg 4:1 a,b;wire 4:1 y;HC00 u1(a,b,y);initialbegina=4b0000;b=4b0001;#10 b=b=B)AGEB=1;elseAGEB=0;endendmodule/74HC85 测试平台代码timescale 1ns/10psmodule
4、 testbench;reg 3:0 ina,inb;wire AGEB;comparator_4_a testbench_4_a(ina,inb,AGEB);initialbeginina=0;repeat(20)#20 ina=$random;#20 $finish;endinitialbegininb=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
5、N-1:0 Sum;output Cout;reg Cout;reg N:0 q;always (A or B or Cin)12begin:adderinteger i;q0=Cin;for(i=0;i=N;i=i+1)beginqi+1=(AiSumi=Ai Biqi;endCout=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);in
6、itialbeginina=0;repeat(20)#20 ina=$random;endinitialbegininb=0;repeat(10)#40 inb=$random;endinitialbegincin=0;#200 cin=1;endendmodule/74HC4511 代码13module 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)beginif(!LT_N
7、) SM_8S=8b11111111;else if(!BI_N) SM_8S=8b00000000;else if(LE) SM_8S=SM_8S;elsecase(A)4d0:SM_8S=8b00111111;4d1:SM_8S=8b00000110;4d2:SM_8S=8b01011011;4d3:SM_8S=8b01001111;4d4:SM_8S=8b01100110;4d5:SM_8S=8b01101101;4d6:SM_8S=8b01111101;4d7:SM_8S=8b00000111;4d8:SM_8S=8b01111111;4d9:SM_8S=8b01101111;4d10
8、:SM_8S=8b01110111;4d11:SM_8S=8b01111100;4d12:SM_8S=8b00111001;4d13:SM_8S=8b01011110;4d14:SM_8S=8b01111001;4d15:SM_8S=8b01110001; default:;endcaseendendmodule/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);initial14begina=0
9、; lt_n=1;bi_n=1;le=0;#30 a=4b0001;#30 a=4b1000;#30 a=4b0111;#30 a=4b1010;#30 a=4b0101;#30 le=1;#30 bi_n=0;#30 lt_n=0;#20;endendmodule2、第一次仿真结果(任选一个模块,请注明)74HC153 模块3、综合结果RTL 图154、第二次仿真结果(综合后) 。回答输出信号是否有延迟,延迟时间约为多少?延迟 300ps165、第三次仿真结果(布局布线后) 。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。延迟 5200ps17183、时序逻辑电路一、实验
10、目的1、了解基于 Verilog 的时序逻辑电路的设计及其验证。2、熟悉利用 EDA 工具进行设计及仿真的流程。3、学习针对实际时序逻辑电路芯片 74HC74、74HC112、74HC194、74HC161 进行 VerilogHDL 设计的方法。二、实验环境Libero 仿真软件。三、实验内容1、熟练掌握 Libero 软件的使用方法。2、进行针对 74 系列时序逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程) ,完成74HC74、74HC112、74HC161、74HC194 相应的设计、综合及仿真。4、提交针对 74HC74、74HC11
11、2、74HC161、74HC194(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC74 代码/ 74hc74.vmodule d_ff (Set,Reset,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;end19endmodule/74HC74 测试平台代码/
12、74hc74.vtimescale 1ns/1nsmodule testbench;reg D,Reset,Set,Clk;wire Q;d_ff testbench_dff(D,Clk,Q,Set,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;endinitial
13、beginSet=0;repeat(20)#20 Set=$random;endendmodule/74HC112 代码module jk_ff(J,K,Clk,Q,Qn);input J,K,Clk;output Q,Qn;reg Q;assign Qn=Q;always (posedge Clk)20case(J,K)2b00:Q=Q;2b01:Q=1b0;2b10:Q=1b1;2b11:Q=Q;default:Q=1bx;endcaseendmodule/74HC112 测试平台代码timescale 1ns/1nsmodule testbench;reg j,k,Clk;wire Q,
14、Qn;parameter clock_period=20;always #(clock_period/2) Clk=Clk;initialbeginj=0;Clk=0;repeat(20)#20 j=$random;endinitialbegink=0;repeat(20)#20 k=$random;endinitial#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:
15、0 Qn;input MRN,PEN;input3:0 Dn;output TC;reg3:0 qaux;reg TC;21always (posedge CP)beginif(!MRN)qaux=4b0000;else if(!PEN)qaux=Dn;else if(CEPelse qaux=qaux;endalways (posedge CP)beginif(qaux=4b1111 else TC=1b0;endassign Qn=qaux;endmodule/74HC161 测试平台代码timescale 1ns/1nsmodule testbench;reg cp,cep,cet,mr
16、n,pen;reg3:0 dn;wire tc;wire3:0 qn;parameter DELY=20;always #(DELY/2) cp=cp;initialbegincep=1;repeat(15)#DELY cet=$random;endinitialbeginpen=1;#DELY pen=0;#60 pen=1;endinitialbegin22mrn=1;repeat(20)#15 mrn=$random;endinitial#300 $finish;HC161 test(cp,cep,cet,mrn,pen,dn,qn,tc);endmodule/74HC194 代码mod
17、ule 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 Aclr or posedge Clock)beginif(Aclr)Qaux=0;else if(Enable)Qaux=Data;else if(Shiften)Qaux=Qaux2:0,Shiftin;endassign Shift
18、out=Qaux3;endmodule/74HC194 测试平台代码timescale 1ns/1nsmodule testbench;reg3:0 Data;reg Aclr,Enable,Shiften,Shiftin,Clock;wire Shiftout;parameter clock_period=20;always #(clock_period/2) Clock=Clock;initial#400 $finish;23initialbeginData=0;repeat(20)#20 Data=$random;endinitialbeginClock=0;Aclr=0;#40 Acl
19、r=1;#100 Aclr=0;endinitialbeginEnable=0;#100 Enable=1;#100 Enable=0;endinitialbeginShiften=0;repeat(20)#20 Shiften=$random;endinitialbeginShiftin=0;repeat(10)#40 Shiftin=$random;endshift_reg_piso testbench_piso(Data,Enable,Shiften,Shiftin,Aclr,Clock,Shiftout);endmodule2、第一次仿真结果(任选一个模块,请注明)74HC74243、
20、综合结果RTL 图254、 第二次仿真结果(综合后)26延迟时间为:300ps5、第三次仿真结果(布局布线后)27延迟时间为:5600ps284、基本门电路、组合电路和时序电路的程序烧录及验证一、实验目的1、熟悉利用 EDA 工具进行设计及仿真的流程。2、熟悉实验箱的使用和程序下载(烧录)及测试的方法。二、实验环境及仪器1、Libero 仿真软件。2、DIGILOGIC-2011 数字逻辑及系统实验箱。3、Actel Proasic3 A3P030 FPGA 核心板及 Flash Pro4 烧录器。三、实验内容1、新建一个工程文件,将前面已经设计好的74HC00、74HC02、74HC04、7
21、4HC08、74HC32 、74HC86 实例文件导入,在 SmartDesign 窗口分别添加这 6 个模块,完成相应连线。按实验指导书 P175 的附录 B.3 中所列引脚对应表来分配引脚,最后通过烧录器烧录至 FPGA 核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。2、新建一个工程文件,将前面已经设计好的 74HC148、74HC138 、74HC153、74HC85、74HC283实例文件导入,在 SmartDesign 窗口分别添加这 5 个模块,完成相应连线。按实验指导书 P176 的附录B.4 中所列引脚对应表来分配引脚,最后通过烧
22、录器烧录至 FPGA 核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。3、新建一个工程文件,将前面已经设计好的 74HC4511 实例文件导入,在 SmartDesign 窗口添加这 1 个模块,完成相应连线。按实验指导书 P173 的附录 B.2 中所列引脚对应表来分配引脚,最后通过烧录器烧录至 FPGA 核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。4、新建一个工程文件,将前面已经设计好的 74HC74、74HC112 、74HC194、74HC161 实例文件导入,在 SmartDesign 窗
23、口分别添加这 4 个模块,完成相应连线。按实验指导书 P178 的附录 B.5 中所列引脚对应表来分配引脚,最后通过烧录器烧录至 FPGA 核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。四、实验结果和数据处理表 4-1 74HC00 输入输出状态输入端 输出端 YA B LED 逻辑状态0 0 亮 10 1 亮 11 0 亮 129输入端 输出端 YA B LED 逻辑状态1 1 灭 0表 4-2 74HC02 输入输出状态输入端 输出端 YA B LED 逻辑状态0 00 11 01 1表 4-3 74HC04 输入输出状态输入端 输出端 YA LED 逻辑状态01表 4-4 74HC08 输入输出状态输入端 输出端 YA B LED 逻辑状态0 00 11 01 1表 4-5 74HC32 输入输出状态输入端 输出端 YA B LED 逻辑状态0 00 11 01 1表 4-6 74HC86 输入输出状态输入端 输出端 YA B LED 逻辑状态0 00 1