《广东工业大学—基于libero的数字逻辑设计仿真及验证实验实验报告.doc》由会员分享,可在线阅读,更多相关《广东工业大学—基于libero的数字逻辑设计仿真及验证实验实验报告.doc(43页珍藏版)》请在金锄头文库上搜索。
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; output
4、 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 A=A1; #1
5、0 A=A1; #10 A=A1; #10 A=A1; #10 A=A1; 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、进行针对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平
7、台代码(可自行编程),完成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、74HC4511设计成扩展型的,即能显示数字09、字母af。6、提交针对74HC148、74HC138、74
8、HC153、74HC85、74HC283、74HC4511(任选一个)的综合、布局布线结果,以及相应的仿真结果。7、完成课堂布置实验的Vierilog代码,并实现综合前仿真。四、实验结果和数据处理1、所有模块及测试平台代码清单注:文件命名要求。工程(project)名要求:学号末4位+下划线+comb,例如陈静(3212005896)芯片的工程名为“5896_comb”。设计代码文件,要求每个模块对应一个文件,文件名要求:学号末4位+下划线+芯片名,如74HC148芯片文件命名为“5896_74HC148.v”。测试平台文件名:自己定义。/74HC148代码module HC148(EI,I,
9、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=5b11111; end else if(I=8b11111111) begin A,GS,EO=5b11110; end else for(j=0;j8;j=j+1) begin if(Ij) begin A=j; GS=0; EO=1; end end endendmodule /74HC148测试平台代码timescale 1n
10、s/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=8b11111111; #20 i=8b11111110; #20 i=8b11111101; #20 i=8b11111011; #20 i=8b11110111; #20 i=8b11101111; #20 i=8b11011111; #20 i=8b10111111; #20 i=8b01111111; endendmodule/74HC138代码m
11、odule 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=8b11111111; else Y=1b1A; endendmodule/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=
12、$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 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; re