好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

基于Libero的数字逻辑设计仿真实验实验报告(实验5到8)

基于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板上验证设计结果。

TAG标签: