版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、熟悉EDA工具的使用;仿真基本门电路。
2、仿真组合逻辑电路。
3、仿真时序逻辑电路。
4、基本门电路、组合电路和时序电路的程序烧录及验证。
5、数字逻辑综合设计仿真及验证。
试验汇报
1、基本门电路
一、试验目的
1、理解基于Verilog的基本门电路的设计及其验证。
2、熟悉运用EDA工具进行设计及仿真的流程。
3、学习针对实际门电路芯片74HC00、74HC02.74HC04.74HC08、74HC32、74HC86进行VerilogHDL设
计的措施。
二、试验环境
Libero仿真软件。
三、试脸内容
1、掌握Liber。软件的使用措施。
2、进行针对74系列基本门电路的设计,并完毕对应的仿真试验。
3、参照教材中对应章节的设计代码、测试平台代码(可自行编程),完毕74HC00.74HC02、74HC04.74HC08、
74HC32.74HC86对应的设计、综合及仿真。
4、提交针对74HC00、74HC02、74HC04.74HC08、74HC32、74HC86(住域一秤)的综合成果,以及对应
的仿真成果。
四、试验成果和数据处理
1、所有•模块及测试平台代码清单
//74HC00代码-与非
//74HC00.V
moduleHC00(DataA,I)ataB,Y);
input[3:0]DataA,DataB;
output|3:0]Y;
assignY=-(A&B);
endmodule
//74HC00测试平台代码
//testbench,v
'(imcscalcIns/Ins
moduletestbench();
reg[4:1]a,b;
wire|4:1]y;
HCOOul(a,b,y);
initial
begin
a=4'b0000;b=4'b0001;
#1()b=b«l;
#10b=b«1:
#10b=b«l;
aM'blllkbM'bOOOI;
#10b=b«l;
#l()b=b«l;
#10b=b«l;
end
cndnioclulc
//74HC02代码-或非
moduleHC02(A.B,Y);
input[4:I]A,B;
output[4:1]Y;
assignY=~(A|B);
cndmodulc
//74HC04代码-非
moduleHC04(A,Y);
input[4:1]A;
output|4:1]Y;
assignY=~A;
cndniodule
//74HC08代码-与
moduleHC08(A.B,Y);
input[4:1]A,B;
output
assignY=A&B;
endmodule
//74HC32代码-或
moduleHC32(A.B,Y);
MilYIBAMXgMI>r»4»x
3、综合成果(截留)。(将有关窗口调至合适大小,使RTL图能完整显示,对窗口截图,背面试验中的综合使用
相似措施处理)
与非门:
口回唾:0】有西甘^~\―川⑶Q\CH'S⑶01f
|DataB[3。]A[前I3%>>/。]枭叫[
un1_Y[3:0]Y[3:0]
4、第二次仿真成果(综合后)(截留)。回答输出信号与否有延迟,延迟时间约为多少?
与非门:
输出信号有延迟,延迟时间约为300Ps
延迟300Ps
5、第三次仿真成果(布局布线后)(截图)。回答输出信号与否有延迟,延迟时间约为多少?分析与否有出现
竞争冒险。
与非门:
输出信号在开始视延迟3200ps
背面延迟4000ps左右
由上图分析可以懂得,在黄线以右的输出转折点处出现了竞争冒险,总共3次。
2、组合逻辑电路
一、试脸目的
1、理解基于Verilog的组合逻辑电路的设计及其验证。
2、熟悉运用EDA工具进行设计及仿真的流程。
3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行
VerilogHDL设计的措施。
二、试脸环境
Libero仿真软件。
三、试验内容
1、掌握Libero软件的使用措施。
2、进行针对74系列基本组合逻辑电路的设计,并完毕对应的仿真试验。
3、参照教材中对应章节的设计代码、测试平台代码(可自行编程),完毕74HC148.74HC138、74HCI53.
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、所有模块及测试平台代码清单
//74HC138代码
//decoder,v
moduledecoder138(Din.Enable.Eq);
input|2:0)Din;
inputEnable;
output[7:0]Eq;
reg[7:0]Eq:
wire[2:0]Din;
integerI;
always@(DinorEnable)
begin
if(Enable)
Eq=O;
else
for(I=0;I<=7;I=I+l)
if(Din==I)
Eq|I|=l;
else
Eq[I]=O;
end
cndniodule
//74HC138测试平台代码
//testbench.v
'timescaleIns/Ins
moduletestbench;
reg[2:0]Din;
regenable:
wire|7:()]dataout;
initial
#400Sfinish;
initial
begin
enable=I;
#40cnablc=0;
end
initial
begin
repeat(20)
#20dataln=$random;
end
decoder138test(Din,cnablc.dataout);
endmodule
//74HC148代码
moduieencoder148(Din,E(),Dout,EI,GS);
input[7:0]Din;
inputEI;
outputEO;
oulput|2:0]Dout;
rezEO:
regGS;
integerI;
always@(DinorEI)
begin:local
if(EI)
begin
Dout=7;
EO=1;
GS=1;
end
elseif(Din==16'bl1111111)
begin
Dout=7;
EO=();
GS=I;
end
else
begin
for(I=0;I<8;I=I+l)
begin
if(-Din[I])
begin
Dout=-I;
EO=1;
GS=0;
end
end
end
endniodule
//74HC148测试平台代码
'(imeccaleIns/lOps
moduletestbench;
reg[7:O]in;
regEI;
wire[2:0]out;
wireEO.GS;
initial
begin
in='b00000001;
repeat(9)
#20in=in«);
end
encoder148testbench148(in,EO.ou(,EI,GS);
endmodule
//74HC153代码
modulemux4_l_a(DO,DI,D2.D3,SelO,Sell,Result);
inputDO,D1,D2,D3;
inputSelO,Sell;
outputResult;
regResult;
always@(D0orDIorD2orD3orSilorSelO)
begin
case({Sell,Sel()})
0:Result=DO;
1:Result=DI;
2:Result=D2;
3:Result=D3;
default:Result=1'bx;
endcase
end
endmodule
//74HC153测试平台代码
'timescaleIns/Ips
moduletestbench_4mux_1;
regEX).D1,D2,D3,Scl1,Sc!O;
wireResult:
mux4_l_aDUT(D(),D1,D2,D3,Scl1,SclO,Rcsult);
initial
begin
D0=0:D1=O;D2=O;D3=O:Sel1=0;Sel0=0;
#1(X)D0=l;DI=0;D2=0;D3=l;
#100Sell=O;SclO=l;
#1(X)Sell=l;SelO=O;
»100Scll=l;5cl0=l;
end
endmodule
//74HC85代码
modulecomparator_4_a(A,B,AGEB);
input13:0]A,B;
outputAGEB;
regAGEB;
always(§)(AorB)
begin
if(A>=B)
AGEB=I;
else
AGEB=0;
end
endmodule
//74HC85测试平台代码
'timescaleIns/lOps
moduletestbench;
reg[3:0]ina.inb;
wireAGEB;
comparator_4_ates(bcnch_4_a(ina,inb,AGEB);
initial
begin
ina=();
rcpcat(20)
#20ina=$random;
#20Sfinish;
end
initial
begin
inb=0;
repeat(lO)
#40inb=$random;
end
endmodule
//74HC283代码
moduleHC283(A,B.Cin.Sum.Cout);
parameterN=4;
input[N-I:O]A,B;
inputCin;
output[N-l:0]Sum;
regfN-l:O]Sum:
outputCout;
regCou(;
reg[N:OJq;
always@(AorBorCin)
beginzadder
integeri;
q[OJ=Cin;
for(i=0:i<=N;i=i+l)
begin
q[i+l]=(A[i]&B[i])|(A[i]&q[i])|(B[i]&q[i]);
Sum|i]=A|i]AB|i|Aq|i|;
end
Coul=q[N];
end
cndniodule
//74HC283测试平台代码
'timescaleIns/lOps
moduletestbench;
reg(3:0]inajnb;
regcin;
wire[3:0]sum;
wirecout;
HC283tcstbcnch283(ina,inb.cin,sum,cou();
initial
begin
ina=0;
repeat(20)
#2()ina=$random;
end
initial
begin
inb=0;
repeat(lO)
#40inb=Srandom;
end
initial
begin
cin=0;
#200cin=l;
end
cndniodule
//74HC4511代码
modu:eHC451l(A,Seg,UT_N,BI_N,LE);
inputLT_N,BI_N,LE;
input[3:()]A;
oulput[7:0]Seg;
reg(7:()]SM_8S;
assignSeg=SM_8S;
always@(AorLT_NorBI_NorLE)
begin
if(!LT_N)SM_8S=8'blill1111;
elseif(!BI_N)SM_8S=8'bOOOOOOOO;
elseif(LE)SM_8S=SM_8S;
else
case(A)
4'd0:SM_8S=8'b00llllll;
4,dl:SN4_8S=8'b00000I10;
4,d2:SM_8S=8'b()IOIIOH;
4,d3:SM_8S=8'b01001111;
4'd4:SM_8S=8'b()l1(X)110;
4'd5:SM_8S=8'b0110H01;
4,d6:SM_8S=8,b01111101;
4'd7:SM_8S=8'bOOOOOI1l;
4'd8:SM_8S=8,b01111111;
4'd9:SM_8s=8'bOllOIII1;
4'dlO:SM_8s=8'b01110Ul;
4,dll:SM_8S=8,b01H1100;
4'dl2:SM_8S=8'b00111001;
4,dl3:SM_8S=8,b01011110;
4,dI4:SM_8S=8'b0IH1001;
4'dl5:SM_8S=8'b01110001;default:;
endcase
end
endmodule
//74HC4511测试平台代码
'timescalelns/l()ps
module(estbcnch;
reg|3:0]a;
reglt_n,bi_n,le;
wire[7:0]seg;
IIC4511hc451l(a,seg,lt_n,bi_n,le);
initial
begin
a=0;lt_n=1;bi_n=l;le=0;
#30a=4'b0001;
#3()a=4'b1(X)();
#30a=4'b0111;
#3()a=4'bl()IO;
#30a=4'b0101;
#3()le=1;
#30bi_n=0;
#30lt_n=0;
#20;
end
endmodule
2、第一次仿真成果(任选一种模块,请注明)
74HC153模块
3、综合成果
RTL图
9才④(30/24。MS仲080@。弗⑦岑OOQQQMam的小叵
®□•・而向旗口
住)
8Farit(?)
0*«U(12)
SCl。aTrte
“4」.•■丽”Jg•«<-1-<«1
tnforMtxoQ6x42
4、第二次仿真成果(综合后)。回答输出信号与否有延迟,延迟时间约为多少?
延迟300ps
5、第三次仿真成果(布局布线后)。回答输出信号与否有延迟,延迟时间约为多少?分析与否有出现竞争冒
险。
延迟5200ps
3、时序逻辑电路
一、试验目的
1、理解基于Verilog的时序逻辑电路的设计及其验证。
2、熟悉运用EDA工具进行设计及仿真的流程。
3、学习针对实际时序逻辑电路芯片74HC74、74HC112.74HC194、74HC⑹进行VerilogHDL设计的措施。
二、试验环境
Libero仿真软件。
三、试脸内容
1、纯熟掌握Liber。软件的使用措施。
2、进行针对74系列时序逻辑电路的设计,并完毕对应的仿真试验。
3、参照教材中对应章节的设“代玛、测试平台代码(可自行编程),完毕74HC74>74HC112.74HC161>74HC194
对应的设计、综合及仿真。
4、提交针对74HC74、74HC112、74HC16K74HC194(隹选二种)的综合成果,以及对应的仿真成果。
四、试验成果和数据处理
1、所有模块及测试平台代码清单
//74HC74代码
//74hc74.v
modu.ed_ff(Set,Reset,Clk,D,Q);
inputSct.Reset.Clk.D;
outputQ;
regQ;
always@(posedgeClkornegedgeResetornegedgeSet)
begin
if(!Reset)
begin
if(!Sei)Q<=D;
elseQ<=1;
end
else
if(!Set)Q<=0;
end
endmodule
//74HC74测试平台代码
//74hc74.v
'(imcscalcIns/Ins
moduletestbench;
regD,Reset,Set,Clk;
wireQ;
d_fftestbench_dff(D,Clk,Q,Set.Reset);
initial
begin
Clk=0:
#4(X)$finish;
end
parameterclock_period=20;
always#(clock_period/2)Clk=-Clk;
initial
begin
D=0:
repeat(20)
#20D=$random;
end
initial
begin
Reset=0;
repeat(20)
#20Reset=$random;
end
initial
begin
Set=O;
repeat(20)
#20Set=$random;
end
cndniodule
//74HCU2代码
modulejk_ff(J,K.Clk.Q.Qn);
inputJ,K,Clk;
outputQ.Qn:
regQ;
assignQn=-Q;
always@(posedgeClk)
casc({J.K})
2'b()0:Q<=Q;
2'bOl:Q<=l'bO;
2,bl():Q<=rbl;
2'bll:Q<=~Q;
default:Q<=l'bx;
endcase
endmodule
//74HC112测试平台代码
'timescaleIns/1ns
module(estbcnch;
regj,k,Clk;
wireQ,Qn;
parameterclock_period=20;
always#(clock_period/2)Clk=-Clk;
initial
begin
j=O:Clk=O;
repeat(2O)
#20j=$random:
end
initial
begin
k=0;
repeat(20)
#2()k=$random;
end
initial
#300Sfinish;
jk_fftestbenchJk(j,k,Clk.Q.Qn);
endmodule
//74HC161代码
moduleHC161(CRCERCET.MRN.PEN,Dn,Qn.TC);
inputCP;
inputCERCET:
oulput|3:0|Qn;
inputMRN,PEN;
input[3:0]Dn;
outputTC;
rcg[3:0]qaux;
regTC;
always@(posedgeCP)
begin
if(!MRN)
qaux<=4'b()0(X);
elseif(!PEN)
qaux<=Dn;
elseif(CEP&CET)
qaux<=qaux+l;
elseqaux<=qaux;
end
always@(posedgeCP)
begin
if(qaux==4'bl111&&CET==1)
TC=l'bl:
elseTC=1'bO;
end
assignQn=qaux;
endmodule
//74HC161测试平台代码
'timescaleIns/Ins
moduletestbench;
regcp,cep,cet,mrn.pen;
reg(3:0]dn;
wiretc;
wire[3:0]qn;
parameterDELY=20;
always#(DELY/2)cp=~cp;
initial
begin
cep=I;
repeat(15)
#DELYcet=$random;
end
initial
begin
pen=l;
#DELYpen=O;
#60pen=1;
end
initial
begin
mm=1;
repeat(20)
#15mm=$random;
end
initial
#300$finish;
HCI61tcs((cp,ccp.cct.mni,pcn,dn.qn,(c);
endmodule
//74HC194代码
moduleHC194(Data,Enable,Shiften,Shiftin,Aclr,Clock,Shiftout);
input[3:0]Data;
inputAclr;
inputEnable;
inputShifien;
inputShiftin;
inputClock;
outputShiftout:
reg[3:0]Qaux;
always@(posedgeAclrorposedgeClock)
begin
if(Aclr)
Qaux=0;
elseif(Enable)
Qaux=Data;
elseif(Shiftcn)
Qaux={Qauxl2:0J,Shiftin};
end
assignShiftoul=Qaux|3|;
endmodule
//74HC194测试平台代码
'timescaleIns/Ins
moduletestbench;
reg[3:0]Data;
regAclr,Enable,Shiften,Shiftin,Clock;
wireShiftout;
parameterclock_period=20;
always#(clock_period/2)Clock=-Clock;
initial
#400Sfinish;
initial
begin
Data=();
rcpeat(20)
#20Data=$random;
end
initial
begin
Clock=0;
Aclr=0:
#40Aclr=l;
#100Aclr=0;
end
initial
begin
Enable=O:
#10()Enable=l;
#100Enablc=0;
end
initial
begin
Shiften=0;
repeat(20)
#20Shiftcn=$random;
end
initial
begin
Shiftin=0;
repeat(10)
#40Shif(in=$random;
end
shift_reg_pisotestbench_piso(Data.Enable,Shiften,Shiftin,Aclr,Clock,Shiftout);
endmodule
2、第一次仿真成果(任选一种模块,请注明)
74HC74
L
RTL图
SjnplifyProE-2010X)9A-l-(Sheetlofl-topF.srs
4、第二次仿真成果(综合后)
延迟时间为:300Ps
5、第二次仿真成果(布局布线后)
We⑼ViewMdTool*Window
Q@7二3三二|,Mg:%夕我立e♦*r18P«型tuts⑪OKS1科型企R型缶至IB»||C二七"?|去1£叫
wkjK|>第]■i
0pitD4Xrw
延迟时间为:56OOps
4、基本门电路、组合电路和时序电路的程序烧录及验证
一、试验目的
1、熟悉运用EDA工具进行设计及仿真的流程。
2、熟悉试验箱的使用和程序下载(烧录)及测试的措施。
二、试验环境及仪器
1、Libero仿真软件。
2、DIGILOGIC-数字逻辑及系统试验箱。
3、ActelProasic3A3P030FPGA关键板及FlashPro4烧录器。
三、试验内容
1、新建一种工程文献,将前面已经设计好的74HC00、74HC02、74HC04、74HC08、74HC32、74HC86实例
文献导入,在SmartDesign窗口分别添加这6个模块,完毕对应连线。按试验指导书P175的附录B.3中所列引脚
对应表来分派引脚,最终通过烧录器烧录至FPGA关键板上。按分派的引脚连线,实测对应功能并记录成果。详
细环节请参照教材及试验指导书的有关内容。
2、新建一种工程文献,将前面已经设计好的74HC148、74HC138、74HCI53.74HC85、74HC283实例文献
导入,在SmartDesign窗口分别添加这5个模块,完毕对应连线。按试验指导书P176的附录B.4中所列引脚对应
表来分派引脚,最终通过烧录器烧录至FPGA关键板上。按分派的引脚连线,实测对应功能并记录成果。详细环
节请参照教材及试验指导书的有关内容。
3、新建一种工程文献,将前面已经设计好的74HC4511实例文献导入,在SmartDesign窗口添加这I个模块,
完毕对应连线。按试验指导书P173的附录B.2中所列引脚对应表来分派引脚,最终通过烧录器烧录至FPGA关键
板上。按分派的引脚连线,实测对应功能并记录成果。详细环节请参照教材及试验指导书的有关内容。
4、新建一种工程文献,将前面己经设计好的74HC74、74HC112、74HC194.74HCI61实例文献导入,在
SmartDesign窗口分别添加这4个模块,完毕对应连线。按试验指导书P178的附录B.5中所列引脚对应表来分派
引脚,最终通过烧录器烧录至FPGA关键板上。按分派的引脚连线,实测对应功能并记录成果。详细环节请参照
教材及试验指导书的有关内容。
四、试验成果和数据处理
表4/74HC00输入输出状态
输入端输出端丫
ABLED逻辑状态
00亮1
01亮1
10亮1
11灭0
表4.274HC02输入输出状态
输入端输出端Y
ABLED逻辑状态
00
01
10
11
表4-374HC04输入输出状态
输入端输出端丫
ALED逻辑状态
0
1
表4-474HC08输入输出状态
输入端输出端丫
ABLED逻辑状态
00
01
10
1!
表4-574HC32输入输出状态
输入端输出端Y
ABLED逻辑状态
00
01
10
11
表4-674HC86输入输出状态
输入端输山端Y
ABLED逻辑状态
00
01
10
1I
表4-774HCI48输入输出状本
控制十进制数字信号输入.・进制数码输出状态输出
[21A]Ao
1<>1|hI..5k17GsEo
1XXXXXXXX
011111111
0XXXXXXX0
0XXXXXX01
0XXXXX011
0XXXX0111
0XXX01111
0XX011111
0X0111111
001111111
注:X为任意状态
表4-874HC138输入输出状方
使能输入数据输入译码输出
E;
及E?AiA.A<i丫。Y.丫2丫3工丫5丫6丫?
1XXXXX
X1XXXX
XX0XXX
001000
001001
001010
001011
001100
001101
001110
001111
注:X为任意状态
表4-974HCI53输入输出状态
选择输入数据输入输出使能输入输出
SiSo11(1IIIlbIE1Y
XXXXXX1
000XXX0
001XXX0
10X0XX0
选择输入数据输入输出使能输入输出
“2
S,SoHoII.11?1E1Y
10X1XX0
0iXX0X0
01XX1X0
11XXX00
11XXX10
注:K为任该状态
表4-1074HC85输入输出状杰
比较输入级联输入输出
A3A2A1A0B3B2B0BIIA>BIA=BIA<BA>BA=BA<B
1XXX0XXXXXX
0XXXIXXXXXX
11XX10XXXXX
00XX01XXXXX
101X)00XXXX
000X001XXXX
11011100XXX
00100011XXX
110I1101000
01000100001
11011101100
00000000101
11111111001
注:X为任意状态
表4-1174HC283输入输出状态
进位
4位加数输入4位被加数输入输出加法成果和进位
输入
CinA4A3A2AlB4B3B2BlCoutS4S3S2SI
000000110
111111111
001110010
I01000110
I01010111
110000111
010011001
表4-1274HC45II输入输出状态
使能输入数据输入译码输出
LTBILEDCBAabcdcrg
0XXXXXX
10XXXXX
1100000
1100001
1100010
1100011
1100100
1100101
1100110
1100111
1101000
1101001
1101010
1101011
11011
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论