根据Libero的数字逻辑设计仿真及验证实验报告Word文件下载.docx
《根据Libero的数字逻辑设计仿真及验证实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《根据Libero的数字逻辑设计仿真及验证实验报告Word文件下载.docx(43页珍藏版)》请在冰豆网上搜索。
1、掌握Libero软件的使用方法。
2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。
3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。
4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一个)的综合结果,以及相应的仿真结果。
四、实验结果和数据处理
1、所有模块及测试平台代码清单
//74HC00代码-与非
//74HC00.v
moduleHC00(A,B,Y);
input[3:
0]A,B;
output[3:
0]Y;
assignY=~(A&
B);
endmodule
//74HC00测试平台代码
//test_00.v
`timescale1ns/1ns
moduletest_00;
reg[3:
0]a,b;
wire[3:
0]y;
HC00u(a,b,y);
initial
begin
a=4'
b0000;
b=4'
b0001;
#10b=b<
<
1;
//0010
//0100
//1000
b1111;
end
//74HC02代码-或非
//74HC02.v
moduleHC02(A,B,Y);
input[3:
0]Y;
assignY=~(A|B);
//74HC02测试平台代码
//test_02.v
moduletest_02;
reg[3:
0]a,b,c;
HC02u(a,b,y);
c=4'
b=~c;
c=c<
#10b=~c;
//74HC04代码-非
//74HC04.v
moduleHC04(A,Y);
0]A;
assignY=~A;
//74HC04测试平台代码
//test_04.v
moduletest_04;
0]a;
HC04u(a,y);
#10a=a<
//74HC08代码-与
//74HC08.v
moduleHC08(A,B,Y);
input[3:
output[3:
assignY=A&
B;
//74HC08测试平台代码
//test_08.v
moduletest_08;
//74HC32代码-或
//74HC32.v
moduleHC32(A,B,Y);
input[3:
assignY=A|B;
//74HC32测试平台代码
//test_32.v
moduletest_32;
a=4'
//74HC86代码-异或
moduleHC86(A,B,Y);
assignY=A^B;
//74HC86测试平台代码
//test_86.v
moduletest_86;
0]a,b;
HC86u(a,b,y);
#10
2、第一次仿真结果(任选一个门,请注明,插入截图,下同)。
(将波形窗口背景设为白色,调整窗口至合适大小,使波形能完整显示,对窗口截图。
后面实验中的仿真使用相同方法处理)
3、综合结果(截图)。
(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)
4、第二次仿真结果(综合后)(截图)。
回答输出信号是否有延迟,延迟时间约为多少?
输出信号有延迟,延迟时间约为0.3ns
5、第三次仿真结果(布局布线后)(截图)。
分析是否有出现竞争冒险。
输出信号有延迟,延迟时间约为3ns,没有出现竞争冒险。
2、组合逻辑电路
1、了解基于Verilog的组合逻辑电路的设计及其验证。
3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设计的方法。
2、进行针对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。
3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相应的设计、综合及仿真。
4、74HC85测试平台的测试数据要求:
进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。
若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);
若两数不等,则需增加一对取值情况,验证A、B相等时的比较结果。
5、74HC4511设计成扩展型的,即能显示数字0~9、字母a~f。
6、提交针对74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个)的综合结果,以及相应的仿真结果。
//74HC148代码
//74HC148.v
moduleHC148(EI,In,Out,EO,GS);
inputEI;
input[7:
0]In;
output[2:
0]Out;
outputEO,GS;
reg[2:
regEO,GS;
intergerI;
always@(EIorIn)
if(EI)
begin
Out=3'
b111;
EO=1;
GS=1;
end
else
if(In==8'
b11111111)
EO=0;
for(I=0;
I<
8;
I=I+1)
if(~In[I])
begin
Out=~I;
EO=1;
GS=0;
end
//74HC148测试平台代码
//test_148.v
moduletest_148;
regei;
reg[7:
0]turn;
wire[7:
0]in=~turn;
wire[2:
0]out;
wireeo,gs;
HC148u(ei,in,out,eo,gs);
initial
ei=1;
turn=8'
b1;
repeat(8)
#10turn=turn<
ei=0;
//74HC138代码
//74HC138.v
moduledecoder3_8_1(DataIn,Enable,Eq);