数字逻辑与系统设计第七次实验报告
时间:2025-07-08
时间:2025-07-08
数字逻辑实验
_____学院______________专业_____班________组、学号______ 姓名______________协作者______________教师评定_________________ 实验题目__第七次实验——基于Libero的数字逻辑设计仿真及验证实验__
1、 熟悉SmartDesign工具的使用
2、 组合逻辑电路综合实验的设计、仿真、程序烧录及验证 3、 时序电路的设计、仿真、程序烧录及验证
数字逻辑实验
实验报告
一、实验目的
1、了解基于Verilog的组合逻辑电路的设计及其验证。
2、熟悉利用EDA工具(特别是SmartDesign)进行设计及仿真的流程。 3、学习利用SmartDesign对全加器进行VerilogHDL设计的方法。 4、熟悉实验箱的使用和程序下载(烧录)及测试的方法。
二、实验环境
1、Libero仿真软件。
2、DIGILOGIC-2011数字逻辑及系统实验箱。
3、Actel Proasic3 A3P030 FPGA核心板及Flash Pro4烧录器。
三、实验内容
1、掌握Libero软件的使用方法。 2、参考教材中5.7.1中相应内容,使用半加器构造全加器,并完成相应的仿真实验。 3、提交相应的仿真结果并完成程序烧录及实验箱验证。 4、编码器扩展实验(利用SmartDesign来完成)
设计一个电路:当按下小于等于9的按键后,显示数码管显示数字,当按下大于9的按键后,显示数码管不显示数字。若同时按下几个按键,优先级别的顺序是9到0。
本实验需要两个编码器74HC148、一个数码显示译码器74HC4511、一个共阴极8段显示数码管LN3461Ax和一个数值比较器74HC85。
5、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。提交针对74HC74、74HC112、74HC161、74HC194(任选一个)的综合结果,以及相应的仿真结果。 ....
四、实验结果和数据处理
(一)全加器
1、SmartDesign连线效果截图
数字逻辑实验
2、模块及测试平台代码
// halfadder.v
module half_adder(S,C,A,B); input A,B; output S,C;
xor gate1 (S,A,B); and gate2 (C,A,B); endmodule
3、第一次仿真结果
4、综合结果
5、第二次仿真结果(综合后)。回答输出信号是否有延迟,延迟时间约为多少? 6、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。
7、引脚分配表
数字逻辑实验
(二)编码器扩展实验 1、SmartDesign的连线图
2、功能仿真波形图
3、综合结果RTL图
4、引脚分配I/O Attribute Editor截图
5、记录实测结果
编码器扩展实验结果记录表
(三)时序电路
1、所有模块及测试平台代码清单
// halfadder.v
module half_adder(S,C,A,B); input A,B; output S,C;
数字逻辑实验
xor gate1 (S,A,B); and gate2 (C,A,B); endmodule
//74HC74代码
module d_ff_1(D,Clk,Q) input D,Clk;
output Q; reg Q;
always@(posedge Clk) Q<=D; endmodule;
//74HC74测试平台代码 `timescale 1ns/1ns module testbench reg D,Clk; wire Q;
parameter clock_period=20;
always#(clock_period/2)Clk=~Clk; initial begin D=0;Clk=0; repeat(20) #20 D=$random; end initial #300 $finish;
d_ff_1 testbench_d(D,Clk,Q); endmodule
//74HC112代码
module jk_ff( J,K,Clk,Q,Qn) input J,K,Clk; output Q,Qn; reg Q;
assign Qn=~Q;
always@(posedge Clk) case({J,K}) 2’b00:Q<=Q; 2’b01:Q<=1’b0; 2’b10:Q<=1’b1;
数字逻辑实验
2’b11:Q<=1’bx; endcase endmodule
//74HC112测试平台代码 `timescale 1ns/1ns module testbench reg J,K,Clk; wire Q,Qn;
parameter clock_period=20;
always#(clock_period/2)Clk=~Clk; initial begin J=0;Clk=0; repeat(20) #20 J=$random; end initial #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; output [3:0]Qn; input MRN,PEN; INPUT[3:0]Dn; output TC; reg[3:0] qaux; reg TC;
always@(posedge CP) begin if(!MRN) qaux<=4’b0000; else if(!PEN) qaux<=Dn;
else if(CEP&CET) qaux<=qaux+1; else qaux<=qaux; end
always@(posedge CP)
数字逻辑实验
begin if(qayx==4’b0000) TC=1’b1; else TC=1’b0; end
assign Qn = qaux; endmodule
//74HC161测试平台代码
//74HC194代码
//74HC194测试平台代码
2、第一次仿真结果(任选一个模块,请注明)
3、综合结果
数字逻辑实验
7
数字逻辑实验
8
数字逻辑实验
4、第二次仿真结果(综合后)
5、第三次仿真结果(布局布线后)
…… 此处隐藏:734字,全部文档内容请下载后查看。喜欢就下载吧 ……