文档库 最新最全的文档下载
当前位置:文档库 › 数字逻辑与系统设计第七次实验报告

数字逻辑与系统设计第七次实验报告

___计算机__学院______________专业_____班________组、学号______ 姓名______________协作者______________教师评定_________________ 实验题目__第七次实验——基于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、综合结果

4、第二次仿真结果(综合后)

5、第三次仿真结果(布局布线后)

相关文档
相关文档 最新文档