基于Libero的数字逻辑设计仿真及验证实验实验报告_第1页
基于Libero的数字逻辑设计仿真及验证实验实验报告_第2页
基于Libero的数字逻辑设计仿真及验证实验实验报告_第3页
基于Libero的数字逻辑设计仿真及验证实验实验报告_第4页
基于Libero的数字逻辑设计仿真及验证实验实验报告_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

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

2、件。三、实验内容1、掌握Libero软件的使用方法。2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。4、提交针对基本门电路的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、门电路模块及测试平台代码清单注:文件命名要求。工程(project)名要求:学号末4位+下划线+BasGate,例如陈静(3212005896)的工程名为“5896_BasGate”。设计代码文件名1:要求同上,即“5896_BasGa

3、te.v”。测试平台文件名:自己定义。(1)/ 模块一:2输入与门、或门、与非、或非、异或门各一,输入信号(1位A,1位B),输出信号(Y1,Y2,Y3,Y4,Y5)module gates_1(A,B,Y1,Y2,Y3,Y4,Y5); input A,B; output Y1,Y2,Y3,Y4,Y5; assign Y1=A&B; assign Y2=A|B; assign Y3=(A&B); assign Y4=(A|B); assign Y5=AB;endmodule(2)/ 模块二:6个非门(同74HC04)module gates_2(A,Y); input 1:6A

4、; output 1:6Y; assign Y=A;endmodule(3)测试平台代码timescale 1ns/1nsmodule testgates_1(); reg A,B; wire Y1,Y2,Y3,Y4,Y5; gates_1 v1(A,B,Y1,Y2,Y3,Y4,Y5); initial begin A=0;B=0; #10 B=1; #10 A=1; #10 B=0; #10; endendmodulemodule testgates_2(); reg 1:6A; wire 1:6Y; gates_2 v2(A,Y); initial begin A=000001; #10

5、A=A<<1; #10 A=A<<1; #10 A=A<<1; #10 A=A<<1; #10 A=A<<1; endendmodule2、模块一第一次仿真结果(截图)。将波形窗口背景设为白色,调整窗口至合适大小,使波形能完整显示,对窗口截图。后面实验中的仿真使用相同方法处理)模块二第一次仿真结果(截图)3、模块一综合结果(截图)。(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)4、模块一第二次仿真结果(综合后)(截图)。回答输出信号是否有延迟,延迟时间约为多少?延迟约为300ps左右。6

6、、 模块一第三次仿真结果(布局布线后)(截图)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。延迟时间约为4500ps左右,无竞争冒险。6、模块一布局布线的引脚分配(截图)。7、烧录(请老师检查)。2、组合逻辑电路一、实验目的1、了解基于Verilog的组合逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、掌握Libero软件的使用方法。2、进行针

7、对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相应的设计、综合及仿真。4、74HC85测试平台的测试数据要求:进行比较的A、B两数,分别依次为本人学号的奇数位和偶数位(例如,当学号为3212005896时,A数依次取学号从左到右的奇数位,即数字3、1、0、5、9,B数依次取学号从左到右的偶数位,即数字2、2、0、8、6),验证A、B的比较结果。注意:若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括)。5、74HC45

8、11设计成扩展型的,即能显示数字09、字母af。6、提交针对74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个)的综合、布局布线结果,以及相应的仿真结果。7、完成课堂布置实验的Vierilog代码,并实现综合前仿真。四、实验结果和数据处理1、所有模块及测试平台代码清单注:文件命名要求。工程(project)名要求:学号末4位+下划线+comb,例如陈静(3212005896)芯片的工程名为“5896_comb”。设计代码文件,要求每个模块对应一个文件,文件名要求:学号末4位+下划线+芯片名,如74HC148芯片文件命名为“5896_74HC

9、148.v”。测试平台文件名:自己定义。/74HC148代码module HC148(EI,I,A,GS,EO); input EI; input 7:0I; output 2:0A; output GS,EO; reg 2:0A; reg GS,EO; integer j; always (EI,I) begin if(EI) begin A,GS,EO=5'b11111; end else if(I=8'b11111111) begin A,GS,EO=5'b11110; end else for(j=0;j<8;j=j+1) begin if(Ij) beg

10、in A=j; GS=0; EO=1; end end endendmodule /74HC148测试平台代码timescale 1ns/1nsmodule test_HC148; reg ei; reg 7:0i; wire 2:0a; wire gs,eo; HC148 u1(ei,i,a,gs,eo); initial begin ei=1; #20 ei=0; i=8'b11111111; #20 i=8'b11111110; #20 i=8'b11111101; #20 i=8'b11111011; #20 i=8'b11110111; #20

11、 i=8'b11101111; #20 i=8'b11011111; #20 i=8'b10111111; #20 i=8'b01111111; endendmodule/74HC138代码module HC138(E1,E2,E3,A,Y); input E1,E2,E3; input 2:0A; output 7:0Y; reg 7:0Y; integer I; always(E1,E2,E3,A) begin if(E1=1|E2=1|E3=0) Y=8'b11111111; else Y=1'b1<<A; endendmodu

12、le/74HC138测试平台代码module test_HC138; reg e1,e2,e3; reg 2:0a; wire 7:0y; HC138 u2(e1,e2,e3,a,y); initial begin a=0; repeat(20) #20 a=$random; end initial begin e1=1; #10 e2=1; #10 e3=0; #10 e1=0; #10 e2=0; #10 e3=1; endendmodule/74HC153代码module HC153(S,I1,I2,E1,E2,Y1,Y2); input 1:0S; input 3:0I1; input

13、 3:0I2; input E1,E2; output Y1,Y2; reg Y1,Y2; always(S,I1,I2,E1,E2) begin if(E1) Y1=0; else Y1=I1S; if(E2) Y2=0; else Y2=I2S; endendmodule/74HC153测试平台代码module test_HC153; reg 1:0s; reg3:0i1; reg3:0i2; reg e1,e2; wire y1,y2; HC153 u3(s,i1,i2,e1,e2,y1,y2); initial begin e1=1; e2=1; #15 e1=0;e2=0; end

14、initial begin s=0;i1=0;i2=0; #10 i1=4'b1001;i2=4'b1100; #10 s=1; #10 s=2; #10 s=3; endendmodule/74HC85代码module HC85(A,B,I,Q); input 3:0A,B; input 2:0I; output 2:0Q; reg 2:0Q; always(A,B) begin if(A>B) Q=3'b100; else if(A<B) Q=3'b001; else if(I1=1) Q=3'b010; else if(I=3'

15、b101) Q=3'b000; else if(I=0) Q=3'b101; else Q=I; endendmodule/74HC85测试平台代码module test_HC85; reg 3:0a,b; reg 2:0i; wire 2:0q; HC85 u4(a,b,i,q); initial begin i=0; repeat(4) #10 i=$random; end initial begin a=3;b=1; #10 a=1;b=4; #10 a=0;b=0; #10 a=6;b=1; #10 a=5;b=9; endendmodule/74HC283代码modu

16、le HC283(CIN,A,B,COUT,S); input CIN; input 3:0A,B; output COUT; output 3:0S; reg COUT; reg 3:0S; always(CIN,A,B) begin COUT,S=CIN+A+B; endendmodule/74HC283测试平台代码module test_HC283; reg cin; reg 3:0a,b; wire cout; wire 3:0s; HC283 u5(cin,a,b,cout,s); initial begin cin=0; repeat(20) #15 cin=$random; en

17、d initial begin a=0; repeat(20) #10 a=$random; end initial begin b=0; repeat(20) #10 b=$random; endendmodule/74HC4511代码module HC4511(LE,BI,LT,A,Y); input LE,BI,LT; input 3:0A; output 6:0Y; reg 6:0Y; always(LE,BI,LT,A) begin if(!LT) Y=7'b1111111; else if(!BI) Y=0; else if(LE) Y=Y; else case (A) 4

18、'd0:Y=7'b1111110;/数字按abcdefg顺序 4'd1:Y=7'b0110000; 4'd2:Y=7'b1101101; 4'd3:Y=7'b1111001; 4'd4:Y=7'b0110011; 4'd5:Y=7'b1011011; 4'd6:Y=7'b1011111; 4'd7:Y=7'b1110000; 4'd8:Y=7'b1111111; 4'd9:Y=7'b1111011; 4'd10:Y=7'

19、b1110111; 4'd11:Y=7'b0011111; 4'd12:Y=7'b1001110; 4'd13:Y=7'b0111101; 4'd14:Y=7'b1001111; 4'd15:Y=7'b1000111; default:; endcase endendmodule/74HC4511测试平台代码module test_HC4511; reg le,bi,lt; reg 3:0a; wire 6:0y; HC4511 u6(le,bi,lt,a,y); initial begin lt=0; #10 l

20、t=1; bi=0; #10 bi=1; le=1; #10 le=0; end initial begin a=0; repeat(30) #20 a=$random; endendmodule3、第一次仿真结果截图(任选一个模块,请注明)74HC85:4、综合结果(截图)5、第二次仿真结果(综合后仿真截图)。回答输出信号是否有延迟,最长延迟时间约为多少? 最大延迟约为700ps。6、布局布线(引脚分配截图)7、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,最长延迟时间约为多少?分析是否有出现竞争冒险。最大延迟约为11500ps,出现竞争冒险。8、烧录,给老师检查。3、时序逻辑电路一

21、、实验目的1、了解基于Verilog的时序逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际时序逻辑电路芯片74HC74、74HC112、74HC194、74HC161进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、熟练掌握Libero软件的使用方法。2、进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。4、提交针对74HC74、74HC112、74HC161、74H

22、C194(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、74HC74、74HC112、74HC161、74HC194四个模块及测试平台代码设计。注:将以上4个模块及相应测试平台代码均写在一个工程文件中。工程(project)名要求:学号末4位+下划线+seq,例如陈静(3212005896)的工程名为“5896_seq”。设计模块代码文件名要求:A) 4个模块可以写在同一个Verilog文件中,如果这样,文件命名要求同上,即“5896_seq.v”;B) 4个模块分别写在不同的Verilog文件中,如果这样,文件命名要求:学号末4位+下划线+芯片名,例如“5896_74H

23、C161.v”。测试平台文件名:分别为每个模块建立一个测试平台文件,文件命名要求:test+下划线+芯片名,例如“test_74HC161.v”。(1)代码清单/74HC74代码module HC74(S1,S2,R1,R2,CLK1,CLK2,D1,D2,Q1,QF1,Q2,QF2); input S1,S2,R1,R2,CLK1,CLK2,D1,D2; output Q1,QF1,Q2,QF2; reg Q1,QF1,Q2,QF2; always(posedge CLK1) begin if(!S1&&R1) begin Q1<=1;QF1<=0; end el

24、se if(S1&&!R1) begin Q1<=0;QF1<=1; end else if(!S1&&!R1) begin Q1<=1;QF1<=1; end else begin Q1<=D1;QF1<=!D1; end end always(posedge CLK2) begin if(!S2&&R2) begin Q2<=1;QF2<=0; end else if(S1&&!R1) begin Q2<=0;QF2<=1; end else if(!S1&&

25、amp;!R1) begin Q2<=1;QF2<=1; end else begin Q2<=D2;QF2<=!D2; end endendmodule/74HC74测试平台代码timescale 1ns/1nsmodule test_HC74; reg s1,s2,r1,r2,clk1,clk2,d1,d2; wire q1,qf1,q2,qf2; HC74 u1(s1,s2,r1,r2,clk1,clk2,d1,d2,q1,qf1,q2,qf2); initial begin clk1=0; #400 $finish; end always #10 clk1=cl

26、k1; initial begin clk2=0; end always #10 clk2=clk2; initial begin s1=0; repeat(20) #20 s1=$random; end initial begin s2=0; repeat(20) #20 s2=$random; end initial begin r1=1; repeat(20) #20 r1=$random; end initial begin r2=1; repeat(20) #20 r2=$random; end initial begin d1=0; repeat(20) #20 d1=$rando

27、m; end initial begin d2=0; repeat(20) #20 d2=$random; endendmodule/74HC112代码module HC112(S1,S2,R1,R2,CLK1,CLK2,J1,J2,K1,K2,Q1,QF1,Q2,QF2); input S1,S2,R1,R2,CLK1,CLK2,J1,J2,K1,K2; output Q1,QF1,Q2,QF2; reg Q1,Q2; assign QF1=Q1; assign QF2=Q2; always(negedge CLK1,negedge S1,negedge R1) begin if(!S1&a

28、mp;&R1) Q1<=1; else if(S1&&!R1) Q1<=0; else if(!S1&&!R1) Q1<=1; else case(J1,K1) 2'b00:Q1<=Q1; 2'b01:Q1<=0; 2'b10:Q1<=1; 2'b11:Q1<=Q1; endcase end always(negedge CLK2,negedge S2,negedge R2) begin if(!S2&&R2) Q2<=1; else if(S2&&a

29、mp;!R2) Q2<=0; else if(!S2&&!R2) Q2<=1; else case(J2,K2) 2'b00:Q2<=Q2; 2'b01:Q2<=0; 2'b10:Q2<=1; 2'b11:Q2<=Q2; endcase endendmodule/74HC112测试平台代码timescale 1ns/1nsmodule test_HC112; reg s1,s2,r1,r2,clk1,clk2,j1,j2,k1,k2; wire q1,qf1,q2,qf2; HC112 u1(s1,s2,r1,

30、r2,clk1,clk2,j1,j2,k1,k2,q1,qf1,q2,qf2); initial begin clk1=0; end always #10 clk1=clk1; initial begin s1=0; repeat(20) #20 s1=$random; end initial begin r1=0; repeat(20) #20 r1=$random; end initial begin j1=0; repeat(20) #20 j1=$random; end initial begin k1=0; repeat(20) #20 k1=$random; end initial

31、 begin clk2=0; end always #10 clk2=clk2; initial begin s2=0; repeat(20) s2=$random; end initial begin r2=0; repeat(20) #20 r2=$random; end initial begin j2=0; repeat(20) #20 j2=$random; end initial begin k2=0; repeat(20) #20 k2=$random; end initial #450 $finish;endmodule/74HC161代码module HC161(MR,CP,

32、CEP,CET,PE,D,Q,TC); input MR,CP,CEP,CET,PE; input 3:0D; output 3:0Q; output TC; reg 3:0Q; reg TC; always(posedge CP) begin if(!MR) Q<=0; else if(!PE) Q<=D; else if(!CEP|!CET) Q<=Q; else Q<=Q+1; end always(posedge CP) begin if(Q=4'b1110) TC<=1; else TC<=0; endendmodule/74HC161测试

33、平台代码timescale 1ns/1nsmodule test_HC161; reg mr,cp,cep,cet,pe; reg 3:0d; wire 3:0q; wire tc; HC161 u1(mr,cp,cep,cet,pe,d,q,tc); initial begin mr=0; #15 mr=1; pe=0; d=0; #15 cep=1; cet=1; pe=1; #200 cep=0; #15 cet=0; end initial begin cp=0; #300 $finish; end always #5 cp=cp;endmodule/74HC194代码module H

34、C194(MR,S,CP,DSR,DSL,D,Q); input MR,DSR,DSL,CP; input 1:0S; input 3:0D; output 3:0Q; reg 3:0Q; always(posedge CP,negedge MR) begin if(!MR) Q<=0; else case(S) 0:Q<=Q; 1:Q<=DSR,Q3:1; 2:Q<=Q2:0,DSL; 3:Q<=D; endcase endendmodule/74HC194测试平台代码timescale 1ns/1nsmodule test_HC194; reg mr,cp,d

35、sr,dsl; reg 1:0s; reg 3:0d; wire 3:0q; HC194 u1(mr,s,cp,dsr,dsl,d,q); initial begin cp=0; s=3; repeat(20) #20 s=$random; end always #10 cp=cp; initial begin dsr=0; repeat(20) #20 dsr=$random; end initial begin dsl=0; repeat(20) #20 dsl=$random; end initial begin d=0; repeat(20) #20 d=$random; end in

36、itial begin mr=1; #350 mr=0; end initial begin #400 $finish; endendmodule(2)第一次仿真结果(任选一个模块,请注明)模块74HC161:(3)综合结果(4)第二次仿真结果(综合后)(5)布局布线(引脚分配截图)(6)第三次仿真结果(布局布线后)(7)烧录。5、数字逻辑综合设计仿真及验证一、实验目的1、进一步熟悉利用EDA工具进行设计及仿真的流程。2、熟悉利用EDA工具中的图形化设计界面进行综合设计。3、熟悉芯片烧录的流程及步骤。4、掌握分析问题、解决问题的综合能力,通过EDA工具设计出能解决实际问题的电路。二、实验环境1

37、、Libero仿真软件。2、DIGILOGIC-2011数字逻辑及系统实验箱。3、Actel Proasic3 A3P030 FPGA核心板及Flash Pro4烧录器。三、实验内容1、新建一工程,用SmartDesign画布工具,进行如下设计:(1)使用已设计的74HC161、74HC85、74HC4511模块,及IP核中Actel Macros库中的反相器模块(INV),在SmartDesign画布中设计下图左框中的模块。注:还应设计相应的dig1dig4输出端口,以控制4个数码显示管显示。工程文件命名要求:学号末4位+下划线+cs,例如“5896_cs1”。各功能模块复制在一个Veril

38、og HDL文件中,文件名命名要求:学号末4位+下划线+cs1,例如“5896_cs1”画布文件的命名要求:学号末4位+下划线+cs2Dig注意,布局布线时输入引脚应避开FPGA板中上下两排排针引脚,输出的ag及dig1-dig4固定的FPGA引脚如下:输出abcdefgdp(小数点)dig1dig2dig3dig4FPGA引脚7677787980818283848586902、跑马灯设计设计要求:共8个LED灯连成一排,用以下3种模式来显示,模式选择使用两个按键进行控制。 模式1:先点亮奇数灯,即1、3、5、7灯亮,然后偶数灯,即2、4、6、8灯亮,依次循环,灯亮的时间按时钟信号的二分频设计

39、。 模式2:按照1、2、3、4、5、6、7、8的顺序依次点亮所有灯;然后再按1、2、3、4、5、6、7、8的顺序依次熄灭所有灯,间隔时间按时钟信号的八分频设计。 模式3:按照1/8、2/7、3/6、4/5的顺序依次点亮所有灯,每次同时点亮两个灯;然后再按1/8、2/7、3/6、4/5的顺序熄灭相应灯,每次同时熄灭两个灯,灯亮的时间按时钟信号的四分频设计。 模式4:变化规律自己设计。工程文件命名:学号后4位_cs2,例如“5976_cs2”。3、四位数码管扫描显示学号末4位设计要求:共4个数码管,连成一排,要求每个数码管显示1位数字。提示: 可使用IP核Basic Blocks中的Registe

40、r,构造4个4位寄存器,每个寄存器存储1位数字; 可设计一个4位的4选1数据选择器,选择4个寄存器中的1个,作为74HC4511的数据输入信号; 可使用IP核counter,构造1个2位计数器,计数器输出作为数据选择器的选择控制信号; 为了能在实验箱上显示4个不同的数字,必须使4个选通信号DIG1、DIG2、DIG3、DIG4轮流被单独选通(该选通信号可用计数器的输出,经2-4译码器产生)。另外,为达到较好的显示效果,时钟频率应大于50HZ。工程文件命名:学号后4位_cs3,例如5976_cs3。4、交通灯控制器(选做)工程文件命名:学号后4位_cs4,例如“5976_cs4”。5、键盘扫描器

41、和编码器(选做)工程文件命名:学号后4位_cs5,例如“5976_cs5”。四、实验结果和数据处理(未做的部分,请自行删除)1、(1)设计完成后,将SmartDesign画布中的设计截图。(截图)(2)设计相应的测试平台。测试平台中的数据要求所输入的A3A2A1A0及B3B2B1B0分别为学生学号末四位的最小数及最大数所对应的二进制数。/测试平台代码timescale 1ns/1nsmodule test; reg 3:0a,b; reg mr,cp; wire 6:0y; z6159_cs2 u1(.A(a),.B(b),.MR(mr),.CP(cp),.Y(y); initial begin cp=0; #400 $finish; end parameter period=20; always#(period/2) cp=cp; initial begin mr=0; #25 mr=1; end initial begin a=1; b=9; endendmodule(3)第一次仿真结果(4)综合结果(5)布局布线(引脚分配截图)。(6)第三次仿真结果(布局布线后)(7)烧录。完成后给老师检查(注:可和后面的多个实验一起烧录再检查)。2、跑马灯设计(1)各功能模块代码(每个功能模块请加注释介绍功能)/选

温馨提示

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

评论

0/150

提交评论