数字逻辑与EDA设计 实验48实验报告Word格式.docx

上传人:b****5 文档编号:18202487 上传时间:2022-12-14 格式:DOCX 页数:35 大小:29.95KB
下载 相关 举报
数字逻辑与EDA设计 实验48实验报告Word格式.docx_第1页
第1页 / 共35页
数字逻辑与EDA设计 实验48实验报告Word格式.docx_第2页
第2页 / 共35页
数字逻辑与EDA设计 实验48实验报告Word格式.docx_第3页
第3页 / 共35页
数字逻辑与EDA设计 实验48实验报告Word格式.docx_第4页
第4页 / 共35页
数字逻辑与EDA设计 实验48实验报告Word格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

数字逻辑与EDA设计 实验48实验报告Word格式.docx

《数字逻辑与EDA设计 实验48实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《数字逻辑与EDA设计 实验48实验报告Word格式.docx(35页珍藏版)》请在冰豆网上搜索。

数字逻辑与EDA设计 实验48实验报告Word格式.docx

<

1;

b1111;

end

//74HC02代码-或非

moduleHC02(A,B,Y);

input[4:

1]A,B;

output[4:

1]Y;

assignY=~(A|B);

//74HC04代码-非

moduleHC04(A,Y);

1]A;

assignY=~A;

//74HC08代码-与

moduleHC08(A,B,Y);

assignY=A&

B;

//74HC32代码-或

moduleHC32(A,B,Y);

assignY=A|B;

//74HC86代码-异或

moduleHC86(A,B,Y);

assignY=A^B;

/门电路测试平台代码

HC00test(a,b,y);

initial

a=4'

#10b=b<

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

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

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

与非门:

3、综合结果(截图)。

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

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

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

输出信号有延迟,延迟时间约为300ps

延迟300ps

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

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

输出信号在开始视延迟3200ps

后面延迟4000ps左右

由上图分析可以知道,在黄线以右的输出转折点处出现了竞争冒险,总共3次。

2、组合逻辑电路

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

3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设计的方法。

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(任选一个)的综合结果,以及相应的仿真结果。

//74HC138代码

//decoder.v

moduledecoder138(Din,Enable,Eq);

input[2:

0]Din;

inputEnable;

output[7:

0]Eq;

reg[7:

wire[2:

0]Din;

integerI;

always@(DinorEnable)

if(Enable)

Eq=0;

else

for(I=0;

I<

=7;

I=I+1)

if(Din==I)

Eq[I]=1;

else

Eq[I]=0;

//74HC138测试平台代码

moduletestbench;

reg[2:

regenable;

wire[7:

0]dataout;

#400$finish;

enable=1;

#40enable=0;

repeat(20)

#20dataIn=$random;

decoder138test(Din,enable,dataout);

//74HC148代码

moduleencoder148(Din,EO,Dout,EI,GS);

input[7:

inputEI;

outputEO;

output[2:

0]Dout;

regEO;

regGS;

always@(DinorEI)

begin:

local

if(EI)

begin

Dout=7;

EO=1;

GS=1;

end

elseif(Din==16'

b)

EO=0;

else

for(I=0;

8;

if(~Din[I])

Dout=~I;

GS=0;

//74HC148测试平台代码

`timeccale1ns/10ps

reg[7:

0]in;

regEI;

wire[2:

0]out;

wireEO,GS;

in='

b00000001;

repeat(9)

#20in=in<

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

//74HC153代码

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

inputD0,D1,D2,D3;

inputSel0,Sel1;

outputResult;

regResult;

always@(D0orD1orD2orD3orSllorSel0)

case({Sel1,Sel0})

0:

Result=D0;

1:

Result=D1;

2:

Result=D2;

3:

Result=D3;

default:

Result=1`bx;

endcase

//74HC153测试平台代码

`timescale1ns/1ps

moduletestbench_4mux_1;

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

wireResult;

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

D0=0;

D1=0;

D2=0;

D3=0;

Sel1=0;

Sel0=0;

#100D0=1;

D3=1;

#100Sel1=0;

Sel0=1;

#100Sel1=1;

#100;

//74HC85代码

modulecomparator_4_a(A,B,AGEB);

input[3:

0]A,B;

outputAGEB;

regAGEB;

always@(AorB)

if(A>

=B)

AGEB=1;

AGEB=0;

//74HC85测试平台代码

`timescale1ns/10ps

reg[3:

0]ina,inb;

wireAGEB;

comparator_4_atestbench_4_a(ina,inb,AGEB);

ina=0;

repeat(20)

#20ina=$random;

#20$finish;

inb=0;

repeat(10)

#40inb=$random;

//74HC283代码

moduleHC283(A,B,Cin,Sum,Cout);

parameterN=4;

input[N-1:

0]A,B;

inputCin;

output[N-1:

0]Sum;

reg[N-1:

outputCout;

regCout;

reg[N:

0]q;

always@(AorBorCin)

adder

integeri;

q[0]=Cin;

for(i=0;

i<

=N;

i=i+1)

begin

q[i+1]=(A[i]&

B[i])|(A[i]&

q[i])|(B[i]&

q[i]);

Sum[i]=A[i]^B[i]^q[i];

end

Cout=q[N];

//74HC283测试平台代码

regcin;

wire[3:

0]sum;

wirecout;

HC283testbench283(ina,inb,cin,sum,cout);

cin=0;

#200cin=1;

//74HC4511代码

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

inputLT_N,BI_N,LE;

0]A;

0]Seg;

reg[7:

0]SM_8S;

assignSeg=SM_8S;

always@(AorLT_NorBI_NorLE)

if(!

LT_N)SM_8S=8'

b;

elseif(!

BI_N)SM_8S=8'

b00000000;

elseif(LE)SM_8S=SM_8S;

case(A)

4'

d0:

SM_8S=8'

b00111111;

d1:

b00000110;

d2:

b01011011;

d3:

b01001111;

d4:

b01100110;

d5:

b01101101;

d6:

b01111101;

d7:

b00000111;

d8:

b01111111;

d9:

b01101111;

d10:

b01110111;

d11:

b01111100;

d12:

b00111001;

d13:

b01011110;

d14:

b01111001;

d15:

b01110001;

default:

;

endcase

//74HC4511测试平台代码

0]a;

reglt_n,bi_n,le;

0]seg;

HC4511hc4511(a,seg,lt_n,bi_n,le);

a=0;

lt_n=1;

bi_n=1;

le=0;

#30a=4'

b1000;

#30a=4'

b0111;

b1010;

b0101;

#30le=1;

#30bi_n=0;

#30lt_n=0;

#20;

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

74HC153模块

3、综合结果

RTL图

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

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

延迟5200ps

3、时序逻辑电路

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

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

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

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

3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。

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

//74HC74代码

//74hc74.v

moduled_ff(Set,Reset,Clk,D,Q);

inputSet,Reset,Clk,D;

outputQ;

regQ;

always@(posedgeClkornegedgeResetornegedgeSet)

if(!

Reset)

begin

if(!

Set)Q<

=D;

elseQ<

=1;

end

else

Set)Q<

=0;

//74HC74测试平台代码

regD,Reset,Set,Clk;

wireQ;

d_fftestbench_dff(D,Clk,Q,Set,Reset);

Clk=0;

#400$finish;

parameterclock_period=20;

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

D=0;

repeat(20)

#20D=$random;

Reset=0;

#20Reset=$random;

Set=0;

#20Set=$random;

//74HC112代码

modulejk_ff(J,K,Clk,Q,Qn);

inputJ,K,Clk;

outputQ,Qn;

assignQn=~Q;

always@(posedgeClk)

case({J,K})

2'

b00:

Q<

=Q;

b01:

=1'

b0;

b10:

b1;

b11:

=~Q;

default:

bx;

endcase

//74HC112测试平台代码

regj,k,Clk;

wireQ,Qn;

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

j=0;

Clk=0;

#20j=$random;

k=0;

#20k=$random;

#300$finish;

jk_fftestbench_jk(j,k,Clk,Q,Qn);

//74HC161代码

moduleHC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC);

inputCP;

inputCEP,CET;

output[3:

0]Qn;

inputMRN,PEN;

input[3:

0]Dn;

outputTC;

reg[3:

0]qaux;

regTC;

always@(posedgeCP)

MRN)

qaux<

=4'

elseif(!

PEN)

=Dn;

elseif(CEP&

CET)

=qaux+1;

elseqaux<

=qaux;

if(qaux==4'

b1111&

&

CET==1)

TC=1'

elseTC=1'

assignQn=qaux;

//74HC161测试平台代码

regcp,cep,cet,mrn,pen;

0]dn;

wiretc;

wire[3:

0]qn;

parameterDELY=20;

always#(DELY/2)cp=~cp;

cep=1;

repeat(15)

#DELYcet=$random;

pen=1;

#DELYpen=0;

#60pen=1;

mrn=1;

#15mrn=$random;

#300$finish;

HC161test(cp,cep,cet,mrn,pen,dn,qn,tc);

//74HC194代码

moduleHC194(Data,En

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

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1