数字逻辑实验报告综合版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Libero的数字逻辑仿真实验

1.基本门电路

一、实验目的

1、了解基于Verilog的基本门电路的设计及其验证。

2、熟悉利用EDA工具进行设计及仿真的流程。

二、实验环境

Libero仿真软件。

三、实验内容

1、参考4.1基本门电路实验掌握Libero软件的使用方法。

2、参考74HC00的实验,完成74HC00、74HC02、74HC04、74HC08、74HC32、

74HC86相应的设计、综合及仿真

3、提交针对74HC00、74HC02、74HC0

4、74HC08、74HC32、74HC86(任选

一个)的综合结果,以及相应的功能仿真结果。

4、自选一个器件演示其布线后仿真过程。

四、实验结果和数据处理

1、模块及测试平台代码清单

74HC32:

(a)模块代码

// main.v

module HC32(a,b,y);

input [4:1]a,b;

output[4:1]y;

assign y=a|b;

endmodule

(b)测试平台代码

// testbench.v

`timescale 1ns/1ns

module testbench;

reg [4:1]a,b;

wire [4:1]y;

HC32 ul(a,b,y);

initial

begin

a=4'b0000;b=4'b0001;

#10 b=b<<1;

#10 b=b<<1;

#10 b=b<<1;

#10 b=b<<1;

end

endmodule

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

2.组合逻辑电路

一、实验目的

1、了解基于Verilog的组合逻辑电路的设计及其验证。

2、熟悉利用EDA工具进行设计及仿真的流程。

二、实验环境

Libero仿真软件。

三、实验内容

1、参考74HC00的实验,完成74HC283、74HC85、74HC138、74HC148、74HC15、

相应的设计、综合及仿真。

2、记录74HC85的综合结果,以及相应的功能仿真结果。测试平台的测试数

据要求:进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证

A、B相等时的比较结果。

3、自选一个器件演示其布线后仿真过程。

四、实验结果和数据处理

1、74HC85模块及测试平台代码清单

a)模块代码

// 74HC85.v

Module

HC85(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={A3,A2,A1,A0};

assign DataB={B3,B2,B1,B0};

always @(DataA or DataB)

begin

if(DataA>DataB)

begin

QAGB=1;QASB=0;QAEB=0;

end

else if(DataA

begin

QAGB=0;QASB=1;QAEB=0;

else if(IAGB&!IASB&!IAEB)

begin

QAGB=1;QASB=0;QAEB=0;

end

else if(!IAGB&IASB&!IAEB)

begin

QAGB=0;QASB=1;QAEB=0;

end

else if(IAEB)

begin

QAGB=1;QASB=0;QAEB=0;

end

else if(IAGB&IASB&!IAEB)

begin

QAGB=0;QASB=0;QAEB=0;

end

else if(!IAGB&!IASB&!IAEB)

begin

QAGB=1;QASB=1;QAEB=0;

end

end

endmodule

b)测试平台代码

// test.v

`timescale 1ns/1ns

module testbench;

reg A3,A2,A1,A0,B3,B2,B1,B0;

reg IAGB,IASB,IAEB;

wire QAGB,QASB,QAEB;

initial

begin

A3=1;

repeat(20)

#20 A3=$random;

end

initial

begin

A2=0;

repeat(20)

#20 A2=$random;

end

initial

begin

相关文档
最新文档