基于Libero的数字逻辑设计仿真实验实验报告(实验5到8) 本文关键词:实验,逻辑设计,仿真,数字,报告
基于Libero的数字逻辑设计仿真实验实验报告(实验5到8) 本文简介:实验题目___________基于Libero的数字逻辑设计仿真实验_____________1.基本门电路2.组合逻辑电路3.时序逻辑电路4.补充实验不要求全部同学都做,但做了可加分。(选做)实验报告基本门电路一、实验目的1、了解基于Verilog的基本门电路的设计及其验证。2、熟悉利用EDA工具
基于Libero的数字逻辑设计仿真实验实验报告(实验5到8) 本文内容:
实验题目___________基于Libero的数字逻辑设计仿真实验_____________
1.
基本门电路
2.
组合逻辑电路
3.
时序逻辑电路
4.
补充实验不要求全部同学都做,但做了可加分。
(选做)
实验报告
基本门电路
一、实验目的
1、了解基于Verilog的基本门电路的设计及其验证。
2、熟悉利用EDA工具进行设计及仿真的流程。
二、实验环境
Libero仿真软件(参考附录C)。
三、实验内容
1、参考附录C掌握Libero软件的使用方法。
2、参考附录C中“一个完整的例子”,进行针对74系列基本门电路的设计,并完成相应的仿真实验。
3、参考附录D的设计代码、测试平台代码(可自行编程)及附录C的步骤,完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。
4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一个)的综合结果,以及相应的功能仿真结果。
四、实验结果和数据处理
1、模块及测试平台代码清单
3
module
HC00(A,B,Y);
input
[4:1]A,B;
output[4:1]Y;
assign
Y=~(A
endmodule
`timescale
1ns/1ns
module
testbench;
reg
a,b;
wire
y;
HC00
test(a,b,y);
initial
begin
a=0;b=0;
#5
a=1;
#5
b=1;
#5
a=0;
#5
b=0;
end
endmodule
2、第一次仿真结果。(将相关窗口调至合适大小,使波形能完整显示,对窗口截图。
后面实验中的仿真使用相同方法处理)
3、综合结果。(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)
4、第二次仿真结果(综合后)。回答输出信号是否有延迟,延迟时间约为多少?
有时间延迟,时间大约为300ps。
5、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。
有时间延迟,时间大约为500ps。
五、基于实验箱的数字逻辑设计实验
参考附录F.1的门电路核心板引脚对应表,在FPGA板上验证设计结果。
组合逻辑电路
一、实验目的
1、了解基于Verilog的组合逻辑电路的设计及其验证。
2、熟悉利用EDA工具进行设计及仿真的流程。
二、实验环境
Libero仿真软件(参考附录C)。
三、实验内容
1、参考附录C掌握Libero软件的使用方法。
2、参考附录C中“一个完整的例子”,进行针对74系列组合逻辑电路的设计,并完成相应的仿真实验。
3、参考附录D的设计代码、测试平台代码(可自行编程)及附录F的步骤,完成74HC283、74HC85、74HC138、74HC148、74HC153相应的设计、综合及仿真。
4、记录74HC85的综合结果,以及相应的功能仿真结果。测试平台的测试数据要求:进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证A、B相等时的比较结果。
四、实验结果和数据处理
1、模块及测试平台代码清单
//
HC85.v
module
hc_85(A3,A2,A1,A0,B3,B2,B1,B0,QAGB,QASB,QAEB,IAGB,IASB,IAEB);
input
A3,A2,A1,A0,B3,B2,B1,B0,IAGB,IASB,IAEB;
output
QAGB,QASB,QAEB;
reg
QAGB,QASB,QAEB;
wire[3:0]DataA,DataB;
assign
DataA[0]=A0;
assign
DataA[1]=A1;
assign
DataA[2]=A2;
assign
DataA[3]=A3;
assign
DataB[0]=B0;
assign
DataB[1]=B1;
assign
DataB[2]=B2;
assign
DataB[3]=B3;
[email protected](DataA>DataB)
begin
if(DataA>DataB)
begin
QAGB=1;QASB=0;QAEB=0;
end
else
if(DataA
begin
QAGB=0;QASB=1;QAEB=0;
end
else
if(IAGBQASB=0;QAEB=0;
end
else
if(!IAGBQASB=1;QAEB=0;
end
else
if(IAEB)
begin
QAGB=0;QASB=0;QAEB=1;
end
begin
if(DataA==DataB)
if(IAGBQASB=0;QAEB=0;
end
if(!IAGBQASB=1;QAEB=0;
end
end
end
endmodule
//
testbench.v
`timescale
1ns/1ns
module
test_hc_85;
reg
A3,A2,A1,A0,B3,B2,B1,B0;
reg
IAGB,IASB,IAEB;
wire
QAGB,QASB,QAEB;
initial
begin
A3=0;
repeat(20)
#20
A3=$random;
end
initial
begin
A2=0;
repeat(20)
#20
A2=$random;
end
initial
begin
A1=0;
repeat(20)
#20
A1=$random;
end
initial
begin
A0=0;
repeat(20)
#20
A0=$random;
end
initial
begin
B3=0;
repeat(20)
#20
B3=$random;
end
initial
begin
B2=0;
repeat(20)
#20
B2=$random;
end
initial
begin
B1=0;
repeat(20)
#20
B1=$random;
end
initial
begin
B0=0;
repeat(20)
#20
B0=$random;
end
initial
begin
IAGB=0;
repeat(10)
#40
IAGB=$random;
end
initial
begin
IASB=0;
repeat(10)
#40
IASB=$random;
end
initial
begin
IAEB=0;
repeat(10)
#40
IAEB=$random;
end
hc_85
testhc85(.A3
(A3),.A2
(A2),.A1
(A1),.A0
(A0),.B3
(B3),.B2
(B2),.B1
(B1),.B0
(B0),.IAGB
(IAGB),.IASB
(IASB),.IAEB
(IAEB),.QAGB
(QAGB),.QASB
(QASB),.QAEB
(QAEB),);
initial
begin
#400
$finish;
end
endmodule
2、第一次仿真结果
3、综合结果
4、第二次仿真结果(综合后)。回答输出信号是否有延迟,延迟时间约为多少?
有时间延迟,时间大约为400-600ps。
5、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。
存在竞争冒险,有延迟时间,时间约为500ps。
五、基于实验箱的数字逻辑设计实验
参考附录F.2的组合电路核心板引脚对应表,在FPGA板上验证设计结果。
时序逻辑电路
一、实验目的
1、了解基于Verilog的时序逻辑电路的设计及其验证。
2、熟悉利用EDA工具进行设计及仿真的流程。
二、实验环境
Libero仿真软件(参考附录C)。
三、实验内容
1、参考附录C掌握Libero软件的使用方法。
2、参考附录C中“一个完整的例子”,进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。
3、参考附录D的设计代码、测试平台代码(可自行编程)及附录F的步骤,完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。
4、选择讲义7.6中任意一个实例,在Libero中实现一遍并记录结果。
四、实验结果和数据处理
1、模块及测试平台代码清单
//
74HC74.v
module
HC74(D1,D2,CP1,CP2,RD1N,RD2N,SD1N,SD2N,Q1,Q2,Q1N,Q2N);
input
D1,D2;
input
RD1N,SD1N,CP1;
input
RD2N,SD2N,CP2;
output
Q1,Q1N,Q2,Q2N;
reg
Q1,Q2;
assign
Q1N=~Q1;
assign
Q2N=~Q2;
always
@(posedge
CP1)
begin
if
(!RD1N)
Q1<=0;
else
if
(!SD1N)
Q1<=1;
else
Q1<=D1;
end
always
@(posedge
CP2)
begin
if
(!RD2N)
Q2<=0;
else
if
(!SD2N)
Q2<=1;
else
Q2<=D2;
end
endmodule
//
testbench_74HC74.v
`timescale
1ns/1ns
module
testbench_74HC74;
reg
D1,D2,RD1N,RD2N,CP1,CP2,SD1N,SD2N;
wire
Q1,Q2,Q1N,Q2N;
initial
begin
CP1=0;
end
parameter
clock_period=20;
always
#(clock_period/2)
CP1=~CP1;
initial
begin
CP2=0;
end
always
#(clock_period/2)
CP2=~CP2;
initial
begin
D1=0;
repeat(20)
#20
D1=$random;
end
initial
begin
D2=0;
repeat(20)
#20
D2=$random;
end
initial
begin
RD1N=0;
repeat(20)
#20
RD1N=$random;
end
initial
begin
RD2N=0;
repeat(20)
#20
RD2N=$random;
end
initial
begin
SD1N=0;
repeat(20)
#20
SD1N=$random;
end
initial
begin
SD2N=0;
repeat(20)
#20
SD2N=$random;
end
HC74
testbench_74HC74(
.CP1
(
CP1
),.CP2
(
CP2
),.D1
(D1),.D2
(D2),.RD1N
(RD1N),.RD2N
(RD2N),.SD1N
(SD1N),.SD2N
(SD2N),.Q1
(Q1),.Q1N
(Q1N),.Q2
(Q2),.Q2N
(Q2N)
);
initial
begin
#400
$finish;
end
endmodule
2、第一次仿真结果
3、综合结果
4、第二次仿真结果(综合后)
有延迟时间,时间大约为300ps。
5、第三次仿真结果(布局布线后)
有延迟时间,时间大约为600ps。
五、基于实验箱的数字逻辑设计实验
参考附录F.3的时序电路核心板引脚对应表,在FPGA板上验证设计结果。
补充实验1
一、实验目的
1、了解基于Verilog的时序逻辑电路的设计及其验证。
2、熟悉利用EDA工具进行设计及仿真的流程。
二、实验环境
Libero仿真软件(参考附录C)。
三、实验内容
1、参考附录C掌握Libero软件的使用方法。
2、参考附录C中“一个完整的例子”,进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。
3、设计一个七段数码显示译码器(可参考讲义P54),完成相应的设计、综合及仿真,在Libero中实现一遍并记录结果。
四、实验结果和数据处理
1、模块及测试平台代码清单
//
syima.v
module
mayi(a,b,c,d,y1,y2,y3,y4,y5,y6,y7);
input
a,b,c,d;
output
y1,y2,y3,y4,y5,y6,y7;
assign
y1=d+b+(c
assign
y2=~c+(b
assign
y3=c+~b+a;
assign
y4=d+(~c
assign
y5=(~c
assign
y6=c+(c
assign
y7=c+(c
endmodule
//
testbench.v
`timescale
1ns/1ns
module
tesetyima();
reg
pa,pb,pc,pd;
wire
py1,py2,py3,py4,py5,py6,py7;
mayi
ui(pa,pb,pc,pd,py1,py2,py3,py4,py5,py6,py7);
initial
begin
pd=0;pc=0;pb=0;pa=0;
#10
pa=1;
#10
pb=1;pa=0;
#10
pa=1;
#10
pc=1;pb=0;pa=0;
#10
pa=1;
#10
pb=1;pa=0;
#10
pa=1;
#10
pd=1;pc=0;pb=0;pa=0;
#10
pa=1;
end
endmodule
2、第一次仿真结果
3、综合结果
4、第二次仿真结果(综合后)
有延迟时间,时间约为400ps。
5、第三次仿真结果(布局布线后)
有延迟时间,时间约为500ps。
五、基于实验箱的数字逻辑设计实验
将程序烧录到FPGA板上,并在FPGA板上验证设计结果。
补充实验2
一、实验目的
1、了解基于Verilog的时序逻辑电路的设计及其验证。
2、熟悉利用EDA工具进行设计及仿真的流程。
二、实验环境
Libero仿真软件(参考附录C)。
三、实验内容
1、参考附录C掌握Libero软件的使用方法。
2、参考附录C中“一个完整的例子”,进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。
3、实现课堂上补充的简单自动售货机控制电路,可自行在原基础上增加一些功能:如增加钞票面额、不同价格商品的选择等。完成相应的设计、综合及仿真,在Libero中实现一遍并记录结果。
四、实验结果和数据处理
1、模块及测试平台代码清单
2、第一次仿真结果
3、综合结果
4、第二次仿真结果(综合后)
5、第三次仿真结果(布局布线后)
五、基于实验箱的数字逻辑设计实验
将程序烧录到FPGA板上,并在FPGA板上验证设计结果。