广工EDA实验报告.docx

上传人:wj 文档编号:525223 上传时间:2023-04-29 格式:DOCX 页数:48 大小:920.48KB
下载 相关 举报
广工EDA实验报告.docx_第1页
第1页 / 共48页
广工EDA实验报告.docx_第2页
第2页 / 共48页
广工EDA实验报告.docx_第3页
第3页 / 共48页
广工EDA实验报告.docx_第4页
第4页 / 共48页
广工EDA实验报告.docx_第5页
第5页 / 共48页
广工EDA实验报告.docx_第6页
第6页 / 共48页
广工EDA实验报告.docx_第7页
第7页 / 共48页
广工EDA实验报告.docx_第8页
第8页 / 共48页
广工EDA实验报告.docx_第9页
第9页 / 共48页
广工EDA实验报告.docx_第10页
第10页 / 共48页
广工EDA实验报告.docx_第11页
第11页 / 共48页
广工EDA实验报告.docx_第12页
第12页 / 共48页
广工EDA实验报告.docx_第13页
第13页 / 共48页
广工EDA实验报告.docx_第14页
第14页 / 共48页
广工EDA实验报告.docx_第15页
第15页 / 共48页
广工EDA实验报告.docx_第16页
第16页 / 共48页
广工EDA实验报告.docx_第17页
第17页 / 共48页
广工EDA实验报告.docx_第18页
第18页 / 共48页
广工EDA实验报告.docx_第19页
第19页 / 共48页
广工EDA实验报告.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

广工EDA实验报告.docx

《广工EDA实验报告.docx》由会员分享,可在线阅读,更多相关《广工EDA实验报告.docx(48页珍藏版)》请在冰点文库上搜索。

广工EDA实验报告.docx

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

学 院 计算机学院

专 业 计算机科学与技术年级班别 (15)7

学 号3215005176

学生姓名 黄海英 指导教师 江志文

16年 12月

计算机

学院 计算机科学与技术 专业_7 班 组、学号

3215005176

姓名_黄海英 协作者 教师评定

实验题目 基于Libero的数字逻辑设计仿真及验证实验

1、 熟悉EDA工具的使用;仿真基本门电路。

2、 仿真组合逻辑电路。

3、 仿真时序逻辑电路。

4、 基本门电路、组合电路和时序电路的程序烧录及验证。

5、 数字逻辑综合设计仿真及验证。

实验报告

1、基本门电路

一、实验目的

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

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

3、学习针对实际门电路芯片

74HC00、74HC02、74HC04、74HC08、74HC32、74HC86进行VerilogHDL设计的方

法。

二、实验环境

Libero仿真软件。

三、实验内容

1、掌握Libero软件的使用方法。

2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。

3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成

74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。

4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一

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

四、实验结果和数据处理

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

//74HC00代码-与非

//74HC00.v

moduleHC00(A,B,Y);input[4:

1]A,B;

output[4:

1]Y;

assignY=~(A&B);//与非

45

endmodule

//74HC00测试平台代码

//testbench.v

`timescale1ns/1nsmoduletestbench();reg[4:

1]a,b;

wire[4:

1]y;

HC00u1(a,b,y);

initialbegin

a=4'b0000;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10a=4'b1111;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

endendmodule

//74HC02代码-或非

//74HC02.v

moduleHC02(A,B,Y);input[4:

1]A,B;

output[4:

1]Y;

assignY=~(A|B);//或非endmodule

//74HC02测试平台代码

`timescale1ns/1nsmoduletest02();reg[4:

1]a,b;

wire[4:

1]y;

HC02u2(a,b,y);

initialbegin

a=4'b0000;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10

a=4'b1111;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

endendmodule

//74HC04代码-非moduleHC04(A,Y);input[6:

1]A;

output[6:

1]Y;assignY=~A;//非endmodule

//74HC04测试平台代码

`timescale1ns/1nsmoduletest04();reg[6:

1]a;

wire[6:

1]y;

HC04u4(a,y);

initialbegin

a=6'b000001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

endendmodule

//74HC08代码-与

moduleHC08(A,B,Y);

input[4:

1]A,B;

output[4:

1]Y;assignY=A&B;//与endmodule

//74HC08测试平台代码

`timescale1ns/1nsmoduletest08();reg[4:

1]a,b;

wire[4:

1]y;

HC08u8(a,b,y);

initialbegin

a=4'b0000;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10

a=4'b1111;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

endendmodule

//74HC32代码-或moduleHC32(A,B,Y);input[4:

1]A,B;

output[4:

1]Y;assignY=A|B;//或endmodule

//74HC32测试平台代码

`timescale1ns/1nsmoduletest32();reg[4:

1]a,b;

wire[4:

1]y;

HC32u32(a,b,y);

initial

begin

a=4'b0000;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10

a=4'b1111;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

endendmodule

//74HC86代码-异或moduleHC86(A,B,Y);input[4:

1]A,B;

output[4:

1]Y;

assignY=A&(~B)|(~A&B);//异或endmodule

//74HC86测试平台代码

`timescale1ns/1nsmoduletest86();reg[4:

1]a,b;

wire[4:

1]y;

HC86u86(a,b,y);

initialbegin

a=4'b0000;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

#10

a=4'b1111;b=4'b0001;#10b=b<<1;

#10b=b<<1;

#10b=b<<1;

end

endmodule

2、第一次仿真结果(任选一个门,请注明,插入截图,下同)。

(将波形窗口背景设为白色,调整窗口至合适大小,使波形能完整显示,对窗口截图。

后面实验中的仿真使用相同方法处理)

3、综合结果(截图)。

(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)

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

回答输出信号是否有延迟,延迟时间约为多少?

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

回答输出信号是否有延迟,延迟时间约为多少?

分析是否有出现竞争冒险。

2、组合逻辑电路

一、实验目的

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

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

3、学习针对实际组合逻辑电路芯片

74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设

计的方法。

二、实验环境

Libero仿真软件。

三、实验内容

1、掌握Libero软件的使用方法。

2、进行针对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。

3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成

74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相应的设计、综合及

仿真。

4、74HC85测试平台的测试数据要求:

进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。

若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证

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

5、74HC4511设计成扩展型的,即能显示数字0~9、字母a~f。

6、提交针对

74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个)的综合

结果,以及相应的仿真结果。

四、实验结果和数据处理

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

//74HC85.v

moduleHC85(A3,A2,A1,A0,B3,B2,B1,B0,QAGB,QASB,QAEB,IAGB,IASB,IAEB);inputA3,A2,A1,A0,B3,B2,B1,B0,IAGB,IASB,IAEB;

outputQAGB,QASB,QAEB;

regQAGB,QASB,QAEB;

wire[3:

0]DataA,DataB;

assignDataA={A3,A2,A1,A0};assignDataB={B3,B2,B1,B0};always@(DataAorDataB)begin

if(DataA>DataB)begin

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

end

elseif(DataA

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

end

elseif(IAGB&!

IASB&!

IAEB)begin

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

end

elseif(!

IAGB&IASB&!

IAEB)beginQAGB=0;QASB=1;QAEB=0;

end

elseif(IAEB)begin

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

end

elseif(IAGB&IASB&!

IAEB)beginQAGB=0;QASB=0;QAEB=0;

end

elseif(!

IAGB&!

IASB&!

IAEB)beginQAGB=1;QASB=1;QAEB=0;

endend

endmodule

//testbench.v

`timescale1ns/10psmoduletestbench;reg[3:

0]ina,inb;wireAGEB;

HC85u1(ina,inb,AGEB);initial

beginina=0;repeat(20)

#20ina=$random;

#20$finish;end

initialbegininb=0;

repeat(10)

#40inb=$random;end

endmodule

//74HC138.v

moduleHC138(A,En,Y);input[2:

0]A;

input[3:

1]En;

output[7:

0]Y;

reg[7:

0]Y;

wire[2:

0]A;integerI;

always@(AorEn)begin

if(En[1]==1||En[2]==1||En[3]==0)Y=8'b11111111;

else

for(I=0;I<=7;I=I+1)if(A==I)

endendmodule

//testbench.v

`timescale1ns/10psmoduletestbench();reg[2:

0]a;

reg[3:

1]en;

wire[7:

0]y;

HC138u1(a,en,y);initial

begin



else

Y[I]=0;

Y[I]=1;

endEndmodule

en[1]=1;en[2]=0;en[3]=1;#10en[1]=0;en[2]=1;

#10en[2]=0;en[3]=0;

#10en[3]=1;a=3'b000;

#10a=3'b001;

#10a=3'b010;

#10a=3'b011;

#10a=3'b100;

#10a=3'b101;

#10a=3'b110;

#10a=3'b111;

//74HC148.v

moduleHC148(DataIn,EO,DataOut,EI,GS);input[7:

0]DataIn;

inputEI;outputEO,GS;

output[2:

0]DataOut;reg[2:

0]DataOut;regEO;

regGS;

integerI;

always@(DataInorEI)begin

if(EI==1)

begin

DataOut=3'b111;

GS=1;

EO=1;

end

elseif(DataIn==8'b11111111)begin

DataOut=3'b111;

GS=1;

EO=0;

endelse

begin

for(I=0;I<8;I=I+1)

begin

if(DataIn[I]==0)begin

DataOut=~I;

EO=1;

GS=0;

end

end

endendmodule

//testbench.v



end

//DataOut=~DataOut;

`timescale1ns/10psmoduletestbench();

reg[7:

0]in;

wire[2:

0]out;regEI;

wireEO,GS;

initial

begin

EI=1;

#20EI=0;in=8'b11111111;

#20in=8'b11111110;

#20in=8'b11111101;

#20in=8'b11111011;

#20in=8'b11110111;

#20in=8'b11101111;

#20in=8'b11011111;

#20in=8'b10111111;

#20in=8'b01111111;

end

HC148u1(in,EO,out,EI,GS);

Endmodule

//74HC153.v

moduleHC153(D0,D1,D2,D3,Sel0,Sel1,Result);inputD0,D1,D2,D3;

inputSel0,Sel1;outputResult;regResult;

always@(D0orD1orD2orD3orSel1orSel0)begin

case({Sel1,Sel0})0:

Result=D0;1:

Result=D1;2:

Result=D2;3:

Result=D3;default:

Result=1'bx;endcase

endendmodule

//testbench.v

`timescale1ns/10ps

moduletestbench;

regD0,D1,D2,D3,Sel1,Sel0;

wireResult;

HC153u1(D0,D1,D2,D3,Sel0,Sel1,Result);

initialbegin

D0=0;D1=0;D2=0;D3=0;Sel1=0;Sel0=0;#100D0=1;D1=0;D2=0;D3=1;

#100Sel1=0;Sel0=1;

#100Sel1=1;Sel0=0;

#100Sel1=1;Sel0=1;

#100;

endendmodule

//74HC283.v

moduleHC283(DataA,DataB,Cin,Sum,Cout);input[3:

0]DataA,DataB;

inputCin;

output[3:

0]Sum;outputCout;

reg[3:

0]Sum;regCout;

always@(DataAorDataBorCin)begin

{Cout,Sum}=DataA+DataB+Cin;end

endmodule

//testbench.v

`timescale1ns/10psmoduletestbench;reg[3:

0]ina,inb;regcin;

wire[3:

0]sum;wirecout;

HC283u1(ina,inb,cin,sum,cout);initial

beginina=0;repeat(20)

#20ina=$random;end

initialbegininb=0;

repeat(10)

#40inb=$random;end

initialbegincin=0;

#200cin=1;endEndmodule

//74HC4511.v

moduleHC4511(A,Seg,LT_N,BI_N,LE);inputLT_N,BI_N,LE;

input[3:

0]A;output[7:

0]Seg;reg[7:

0]SM_8S;

assignSeg=SM_8S;

always@(AorLT_NorBI_NorLE)beginif(!

LT_N)SM_8S=8'b11111111;

elseif(!

BI_N)SM_8S=8'b00000000;

elseif(LE)SM_8S=SM_8S;else

case(A)4'd0:

SM_8S=8'b00111111;

4'd1:

SM_8S=8'b00000110;

4'd2:

SM_8S=8'b01011011;

4'd3:

SM_8S=8'b01001111;

4'd4:

SM_8S=8'b01100110;

4'd5:

SM_8S=8'b01101101;

4'd6:

SM_8S=8'b01111101;

4'd7:

SM_8S=8'b00000111;

4'd8:

SM_8S=8'b01111111;

4'd9:

SM_8S=8'b01101111;

4'd10:

SM_8S=8'b01110111;

4'd11:

SM_8S=8'b01111100;

4'd12:

SM_8S=8'b00111001;

4'd13:

SM_8S=8'b01011100;

4'd14:

SM_8S=8'b01111001;

4'd15:

SM_8S=8'b01110001;

default:

;endcase

endendmodule

//testbench.v

`timescale1ns/10psmoduletestbench;reg[3:

0]A;

regLT_N,BI_N,LE;wire[7:

0]Seg;integeri;

HC4511u1(A,Seg,LT_N,BI_N,LE);

initialbegin

for(i=0;i<16;i=i+1)begin

#20A=i;

endendendmodule

2、第一次仿真结果(任选一个模块,请注明)

3、综合结果

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

回答输出信号是否有延迟,延迟时间约为多少?

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

回答输出信号是否有延迟,延迟时间约为多少?

分析是否有出现竞争冒险。

3、时序逻辑电路

一、实验目的

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

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

3、学习针对实际时序逻辑电路芯片74HC74、74HC112、74HC194、74HC161进行VerilogHDL设计的方法。

二、实验环境

Libero仿真软件。

三、实验内容

1、熟练掌握Libero软件的使用方法。

2、进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。

3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成

74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。

4、提交针对74HC74、74HC112、74HC161、74HC194(任选一个)的综合结果,以及相应的仿真结果。

四、实验结果和数据处理

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

//74HC74代码

//74HC74.v

moduleHC74(SD,RD,Clk,D,Q,NQ);

input[1:

0]SD,RD,Clk,D;

output[1:

0]Q,NQ;

reg[1:

0]Q,NQ;

always@(posedgeClk[0]ornegedgeSD[0]ornegedgeRD[0])begin

if(!

SD[0])

begin

if(RD[0])

begin

Q[0]=1;

NQ[0]=0;

endelse

begin

Q[0]=1;

NQ[0]=1;

end

endelse

begin

if(!

RD[0])

begin

Q[0]=0;

NQ[0]=1;

endelse

begin

Q[0]=D[0];

NQ[0]=~D[0];

end

end

end

always@(posedgeClk[1]ornegedgeSD[1]ornegedgeRD[1])begin

if(!

SD[1])

begin

if(RD[1])

begin

Q[1]=1;

NQ[1]=0;

endelse

begin

Q[1]=1;

NQ[1]=1;

end

endelse

begin

if(!

RD[1])

begin

Q[1]=0;

NQ[1]=1;

endelse

begin

Q[1]=D[1];

NQ[1]=~D[1];

end

end

end

endmodule

//74HC74测试平台代码

//testbench.v

`timescale1ns/1nsmoduletestbench;

reg[1:

0]SD,RD,Clk,D;

wire[1:

0]Q,NQ;

HC74u1(SD,RD,Clk,D,Q,NQ);

initialbeginClk=0;

#400$finish;end

parameterclock_period=20;

always#(clock_period/2)Clk=~Clk;

initial

begin

SD=2'b01;RD=2'b10;D=2'b01;#10S

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2