版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机____学院___专业___班________组
学号______
姓名____协作者______________教师评定_________________
实验题目_________基于Libero的数字逻辑设计仿真及验证实验_________
熟悉EDA工具的使用;仿真根本门电路。
仿真组合逻辑电路。
仿真时序逻辑电路。
根本门电路、组合电路和时序电路的程序烧录及验证。
数字逻辑综合设计仿真及验证。
实验报告
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代码-与非
//HC00.v
moduleHC00(A,B,Y);
input[4:1]A,B;
output[4:1]Y;
assignY=~(A&B);
endmodule
//74HC00测试平台代码
//test.v
`timescale1ns/1ns
moduletest1();
reg[4:1]a,b;
wire[4:1]y;
HC00u1(a,b,y);
initial
begin
a=4'b0000;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
a=4'b1111;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
end
endmodule
//74HC02代码-或非
//HC02.v
moduleHC02(A,B,Y);
input[4:1]A,B;
output[4:1]Y;
assignY=~(A|B);
endmodule
//74HC02测试平台代码
//test.v
`timescale1ns/1ns
moduletest2();
reg[4:1]a,b;
wire[4:1]y;
HC02u2(a,b,y);
initial
begin
a=4'b0000;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
a=4'b1111;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
end
endmodule
//74HC04代码-非
//HC04.v
moduleHC04(A,Y);
input[6:1]A;
output[6:1]Y;
assignY=~A;
endmodule
//74HC04测试平台代码
//test.v
`timescale1ns/1ns
moduletest3();
reg[6:1]a;
wire[6:1]y;
HC04u3(a,y);
initial
begin
a=4'b000001;
#10a=a<<1;
#10a=a<<1;
#10a=a<<1;
#10a=a<<1;
#10a=a<<1;
end
endmodule
//74HC08代码-与
//HC08.v
moduleHC08(A,B,Y);
input[4:1]A,B;
output[4:1]Y;
assignY=A&B;
endmodule
//74HC08测试平台代码
//test.v
`timescale1ns/1ns
moduletest4();
reg[4:1]a,b;
wire[4:1]y;
HC08u4(a,b,y);
initial
begin
a=4'b0000;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
a=4'b1111;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
end
endmodule
//74HC32代码-或
//HC32.v
moduleHC32(A,B,Y);
input[4:1]A,B;
output[4:1]Y;
assignY=A|B;
endmodule
//74HC32测试平台代码
//test.v
`timescale1ns/1ns
moduletest5();
reg[4:1]a,b;
wire[4:1]y;
HC32u5(a,b,y);
initial
begin
a=4'b0000;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
a=4'b1111;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
end
endmodule
//74HC86代码-异或
//HC86.v
moduleHC86(A,B,Y);
input[4:1]A,B;
output[4:1]Y;
assignY=A^B;
endmodule
//74HC86测试平台代码
//test.v
`timescale1ns/1ns
moduletest6();
reg[4:1]a,b;
wire[4:1]y;
HC86u6(a,b,y);
initial
begin
a=4'b0000;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
a=4'b1111;b=4'b0001;
#10b=b<<1;
#10b=b<<1;
#10b=b<<1;
end
endmodule
第一次仿真结果〔任选一个门,请注明,插入截图,下同〕。〔将波形窗口背景设为白色,调整窗口至适宜大小,使波形能完整显示,对窗口截图。后面实验中的仿真使用相同方法处理〕
异或门:
综合结果。〔将相关窗口调至适宜大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理〕
4、第二次仿真结果〔综合后〕。答复输出信号是否有延迟,延迟时间约为多少?
输出信号有延迟,延迟时间为300ps。
5、第三次仿真结果〔布局布线后〕。答复输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。
输出信号有延迟,延迟时间是4200ps。没有出现竞争冒险。
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、所有模块及测试平台代码清单
//74HC148代码
//HC148.v
moduleHC148(DataIn,EO,Dataout);
input[7:0]DataIn;
outputEO;
output[2:0]Dataout;
reg[2:0]Dataout;
regEO;
integerI;
always@(DataIn)
begin
Dataout=0;
EO=1;
for(I=0;I<8;I=I+1)
begin
if(DataIn[I])
begin
Dataout=I;
EO=0;
end
end
end
endmodule
//74HC148测试平台代码
//test148.v
`timescale1ns/1ns
moduletest148;
reg[7:0]in;
wire[2:0]out;
wireEO;
initial
begin
in=00000001;
repeat(9)
#20in=in<<1;
end
HC148u148(in,EO,out);
endmodule
//74HC138代码
//HC138.v
moduleHC138(A,B,C,G1,G2AN,G2BN,Y7,Y6,Y5,Y4,Y3,Y2,Y1,Y0);
inputA,B,C;
inputG1,G2AN,G2BN;
outputY7,Y6,Y5,Y4,Y3,Y2,Y1,Y0;
wireY7,Y6,Y5,Y4,Y3,Y2,Y1,Y0;
reg[7:0]Eq;
wire[7:0]EqN;
wire[2:0]DataIn;
assignEqN=~Eq;
assignDataIn[0]=A;
assignDataIn[1]=B;
assignDataIn[2]=C;
always@(DataInorG1orG2ANorG2BN)
begin
if(!G1)
Eq=8'b11111111;
elseif(!(G2AN&G2BN))
Eq=8'b11111111;
elseEq=1'b1<<DataIn;
end
assignY0=EqN[0];
assignY1=EqN[1];
assignY2=EqN[2];
assignY3=EqN[3];
assignY4=EqN[4];
assignY5=EqN[5];
assignY6=EqN[6];
assignY7=EqN[7];
endmodule
//74HC138测试平台代码
//test138.v
`timescale1ns/10ps
moduletest138;
regA,B,C;
regG1,G2AN,G2BN;
wireY0,Y1,Y2,Y3,Y4,Y5,Y6,Y7;
initial
begin
A=0;
repeat(20)
#20A=$random;
end
initial
begin
B=0;
repeat(20)
#20A=$random;
end
initial
begin
C=0;
repeat(20)
#20A=$random;
end
initial
begin
G1=0;
#40G1=1;
end
initial
begin
G2AN=0;
#25G2AN=1;
end
initial
begin
G2BN=0;
#45G2BN=1;
end
HC138u138
(
.A(A),
.B(B),
.C(C),
.G1(G1),
.G2AN(G2AN),
.G2BN(G2BN),
.Y0(Y0),
.Y1(Y1),
.Y2(Y2),
.Y3(Y3),
.Y4(Y4),
.Y5(Y5),
.Y6(Y6),
.Y7(Y7)
);
endmodule
//74HC153代码
//HC153.v
moduleHC153(C0,C1,C2,C3,A,B,Y,G);
inputC0,C1,C2,C3,A,B,G;
outputY;
regY;
always@(C0orC1orC2orC3orAorB)
begin
if(G)Y=0;
else
case({A,B})
0:Y=C0;
1:Y=C1;
2:Y=C2;
3:Y=C3;
default:Y=1'bx;
endcase
end
endmodule
//74HC153测试平台代码
//test153.v
`timescale1ns/1ns
moduletest153;
regC0,C1,C2,C3;
regA,B,G;
wireY;
initial
begin
G=1;
repeat(20)
#20G=0;
end
initial
begin
A=0;
repeat(20)
#20A=$random;
end
initial
begin
B=0;
repeat(20)
#20B=$random;
end
initial
begin
C0=0;
repeat(20)
#20C0=$random;
end
initial
begin
C1=0;
repeat(20)
#20C1=$random;
end
initial
begin
C2=0;
repeat(20)
#20C2=$random;
end
initial
begin
C3=0;
repeat(20)
#20C3=$random;
end
HC153u153
(
.C0(C0),
.C1(C1),
.C2(C2),
.C3(C3),
.G(G),
.A(A),
.B(B),
.Y(Y)
);
endmodule
//74HC85代码
//HC85.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[0]=A0;
assignDataA[1]=A1;
assignDataA[2]=A2;
assignDataA[3]=A3;
assignDataB[0]=B0;
assignDataB[1]=B1;
assignDataB[2]=B2;
assignDataB[3]=B3;
always@(DataAorDataB)
begin
if(DataA>DataB)
begin
QAGB=1;QASB=0;QAEB=0;
end
elseif(DataA<DataB)
begin
QASB=1;QAGB=0;QAEB=0;
end
elseif(IAGB&!IASB&!IAEB)
begin
QAGB=1;QASB=0;QAEB=0;
end
elseif(!IAGB&IASB&!IAEB)
begin
QASB=1;QAGB=0;QAEB=0;
end
elseif(IAEB)
begin
QAEB=1;QASB=0;QAGB=0;
end
begin
if(DataA==DataB)
if(IAGB&IASB&!IAEB)
beginQAGB=0;QASB=0;QAEB=0;end
if(!IAGB&!IASB&!IAEB)
beginQAGB=1;QASB=1;QAEB=0;end
end
end
endmodule
//74HC85测试平台代码
//test85.v
`timescale1ns/1ns
moduletest85;
regA3,A2,A1,A0,B3,B2,B1,B0;
regIAGB,IASB,IAEB;
wireQAGB,QASB,QAEB;
initial
begin
A3=0;
repeat(20)
#20A3=$random;
end
initial
begin
A2=0;
repeat(20)
#20A2=$random;
end
initial
begin
A1=0;
repeat(20)
#20A1=$random;
end
initial
begin
A0=0;
repeat(20)
#20A0=$random;
end
initial
begin
B3=0;
repeat(20)
#20B3=$random;
end
initial
begin
B2=0;
repeat(20)
#20B2=$random;
end
initial
begin
B1=0;
repeat(20)
#20B1=$random;
end
initial
begin
B0=0;
repeat(20)
#20B0=$random;
end
initial
begin
IAGB=0;
repeat(10)
#40IAGB=$random;
end
initial
begin
IASB=0;
repeat(10)
#40IASB=$random;
end
initial
begin
IAEB=0;
repeat(10)
#40IAEB=$random;
end
HC85u85
(
.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)
);
Endmodule
//74HC283代码
//HC283.v
moduleHC283(A3,A2,A1,A0,B3,B2,B1,B0,Sigma3,Sigma2,Sigma1,Sigma0,C0,C4);
inputA3,A2,A1,A0,B3,B2,B1,B0;
inputC0;
outputSigma3,Sigma2,Sigma1,Sigma0;
outputC4;
regC4;
reg[3:0]Sigma;
wire[3:0]DataA,DataB;
assignDataA[0]=A0;
assignDataA[1]=A1;
assignDataA[2]=A2;
assignDataA[3]=A3;
assignDataB[0]=B0;
assignDataB[1]=B1;
assignDataB[2]=B2;
assignDataB[3]=B3;
always@(DataAorDataBorC0)
begin
{C4,Sigma}=DataA+DataB+C0;
end
assignSigma0=Sigma[0];
assignSigma1=Sigma[1];
assignSigma2=Sigma[2];
assignSigma3=Sigma[3];
endmodule
//74HC283测试平台代码
//test283.v
`timescale1ns/10ps
moduletest283;
regA3,A2,A1,A0,B3,B2,B1,B0;
regC0;
wireSigma3,Sigma2,Sigma1,Sigma0;
wireC4;
initial
begin
A3=0;
repeat(20)
#20A3=$random;
end
initial
begin
A2=0;
repeat(20)
#20A2=$random;
end
initial
begin
A1=0;
repeat(20)
#20A1=$random;
end
initial
begin
A0=0;
repeat(20)
#20A0=$random;
end
initial
begin
B3=0;
repeat(20)
#20B3=$random;
end
initial
begin
B2=0;
repeat(20)
#20B2=$random;
end
initial
begin
B1=0;
repeat(20)
#20B1=$random;
end
initial
begin
B0=0;
repeat(20)
#20B0=$random;
end
initial
begin
C0=0;
repeat(20)
#20C0=$random;
end
HC283u283
(
.A3(A3),
.A2(A2),
.A1(A1),
.A0(A0),
.B3(B3),
.B2(B2),
.B1(B1),
.B0(B0),
.Sigma3(Sigma3),
.Sigma2(Sigma2),
.Sigma1(Sigma1),
.Sigma0(Sigma0),
.C0(C0),
.C4(C4)
);
Endmodule
//74HC4511代码
//HC4511.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)
begin
if(!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'b01011110;
4'd14:SM_8S=8'b01111001;
4'd15:SM_8S=8'b01110001;
default:;
endcase
end
endmodule
//74HC4511测试平台代码
//test4511.v
`timescale1ns/1ps
moduletest4511;
reg[3:0]pA;
regpLT_N,pBI_N,pLE;
wire[7:0]pSeg;
HC4511u4511(pA,pSeg,pLT_N,pBI_N,pLE);
initial
begin
pA=0;pLT_N=0;pBI_N=0;pLE=0;
#10pLT_N=0;
#10pLT_N=1;pBI_N=0;
#10pLE=0;pLT_N=1;pBI_N=1;pA=4'd0;
#10pA=4'd0;
#10pA=4'd1;
#10pA=4'd2;
#10pA=4'd3;
#10pA=4'd4;
#10pA=4'd5;
#10pA=4'd6;
#10pA=4'd7;
#10pA=4'd8;
#10pA=4'd9;
#10pA=4'd10;
#10pA=4'd11;
#10pA=4'd12;
#10pA=4'd13;
#10pA=4'd14;
#10pA=4'd15;
end
endmodule
第一次仿真结果〔任选一个模块,请注明〕
74HC85
3、综合结果
4、第二次仿真结果〔综合后〕。答复输出信号是否有延迟,延迟时间约为多少?
输出信号有延迟,延迟时间为500ps。
第三次仿真结果〔布局布线后〕。答复输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。
输出信号有延迟,延迟时间为4700,有出现竞争
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代码
//HC74.v
moduleHC74(D1,D2,CP1,CP2,RD1N,RD2N,SD1N,SD2N,Q1,Q2,Q1N,Q2N);
inputD1,D2;
inputRD1N,SD1N,CP1;
inputRD2N,SD2N,CP2;
outputQ1,Q1N,Q2,Q2N;
regQ1,Q2;
assignQ1N=~Q1;
assignQ2N=~Q2;
always@(posedgeCP1)begin
if(!RD1N)Q1<=0;
elseif(!SD1N)Q1<=1;
elseQ1<=D1;
end
always@(posedgeCP2)begin
if(!RD2N)Q2<=0;
elseif(!SD2N)Q2<=1;
elseQ2<=D2;
end
endmodule
//74HC74测试平台代码
//test74.v
`timescale1ns/1ns
moduletest74;
regD1,D2,RD1N,RD2N,CP1,CP2,SD1N,SD2N;
wireQ1,Q2,Q1N,Q2N;
initialbegin
CP1=0;
end
parameterclock_period=20;
always#(clock_period/2)CP1=~CP1;
initialbegin
CP2=0;
end
always#(clock_period/2)CP2=~CP2;
initial
begin
D1=0;
repeat(20)
#20D1=$random;
end
initial
begin
D2=0;
repeat(20)
#20D2=$random;
end
initial
begin
RD1N=0;
repeat(20)
#20RD1N=$random;
end
initial
begin
RD2N=0;
repeat(20)
#20RD2N=$random;
end
initial
begin
SD1N=0;
repeat(20)
#20SD1N=$random;
end
initial
begin
SD2N=0;
repeat(20)
#20SD2N=$random;
end
HC74u74
(
.CP1(CP1),
.CP2(CP2),
.D1(D1),
.D2(D2),
.RD1N(RD1N),
.RD2N(RD2N),
.SD1N(SD1N),
.SD2N(SD2N),
.Q1(Q1),
.Q1N(Q1N),
.Q2(Q2),
.Q2N(Q2N)
);
endmodule
//74HC112代码
//HC112.v
moduleHC112(J1,J2,K1,K2,CPN1,CPN2,RD1N,RD2N,SD1N,SD2N,Q1,Q2,Q1N,Q2N);
inputJ1,J2,K1,K2;
inputRD1N,SD1N,CPN1;
inputRD2N,SD2N,CPN2;
outputQ1,Q2,Q1N,Q2N;
regQ1,Q2;
assignQ1N=~Q1;
assignQ2N=~Q2;
always@(posedgeCPN1)begin
if(!RD1N)Q1<=0;
elseif(!SD1N)Q1<=1;
else
case({J1,K1})
2'b00:Q1<=Q1;
2'b01:Q1<=1'b0;
2'b10:Q1<=1'b1;
2'b11:Q1<=~Q1;
default:Q1<=1'bx;
endcase
end
always@(posedgeCPN2)begin
if(!RD2N)Q2<=0;
elseif(!SD2N)Q2<=1;
else
case({J2,K2})
2'b00:Q2<=Q2;
2'b01:Q2<=1'b0;
2'b10:Q2<=1'b1;
2'b11:Q2<=~Q2;
default:Q2<=1'bx;
endcase
end
endmodule
//74HC112测试平台代码
//test112.v
`timescale1ns/1ns
moduletest112;
regJ1,J2,K1,K2,RD1N,RD2N,CPN1,CPN2,SD1N,SD2N;
wireQ1,Q2,Q1N,Q2N;
initialbegin
CPN1=0;
end
parameterclock_period=20;
always#(clock_period/2)CPN1=~CPN2;
initialbegin
CPN2=0;
end
always#(clock_period/2)CPN2=~CPN2;
initial
begin
J1=0;
repeat(20)
#20J1=$random;
end
initial
begin
K1=0;
repeat(20)
#20K1=$random;
end
initial
begin
J2=0;
repeat(20)
#20J2=$random;
end
initial
begin
K2=0;
repeat(20)
#20K2=$random;
end
initial
begin
RD1N=0;
repeat(20)
#20RD1N=$random;
end
initial
begin
RD2N=0;
repeat(20)
#20RD2N=$random;
end
initial
begin
SD1N=0;
repeat(20)
#20SD1N=$random;
end
initial
begin
SD2N=0;
repeat(20)
#20SD2N=$random;
end
HC112u112
(
.CPN1(CPN1),
.CPN2(CPN2),
.J1(J1),
.K1(K1),
.J2(J2),
.K2(K2),
.RD1N(RD1N),
.RD2N(RD2N),
.SD1N(SD1N),
.SD2N(SD2N),
.Q1(Q1),
.Q1N(Q1N),
.Q2(Q2),
.Q2N(Q2N)
);
endmodule
//74HC161代码
//HC161.v
moduleHC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC);
inputCP;
inputCEP,CET;
output[3:0]Qn;
inputMRN;
inputPEN;
input[3:0]Dn;
outputregTC;
reg[3:0]qaux;
always@(posedgeCP)
begin
if(!MRN)
qaux<=4'b0000;
elseif(!PEN)
qaux<=Dn;
elseif(CEP&CET)
qaux<=qaux+1;
elseqaux<=qaux;
end
always@(posedgeCP)
begin
if(qaux==4'b1111)
TC=1'b1;
elseTC=1'b0;
end
assignQn=qaux;
endmodule
//74HC161测试平台代码
//test161.v
`timescale1ns/1ns
moduletest161;
regCP,CEP,CET,MRN,PEN;
reg[3:0]Dn;
wire[3:0]Qn;
wireTC;
initial
begin
CP=0;
end
parameterDELY=20;
always#(DELY/2)CP=~CP;
initial
begin
CEP=0;
repeat(20)
#20CEP=1;
end
initial
begin
CET=0;
repeat(20)
#20CET=1;
end
initial
begin
MRN=0;
repeat(20)
#20MRN=1;
end
initial
begin
PEN=0;
repeat(20)
#20PEN=1;
end
initial
begin
Dn=0;
repeat(20)
#20Dn=$random;
end
HC161u161
(
.CP(CP),
.CEP(CEP),
.CET(CET),
.MRN(MRN),
.PEN(PEN),
.Dn(Dn),
.Qn(Qn),
.TC(TC)
);
endmodule
//74HC194代码
//HC194.v
moduleHC194(D0,D1,D2,D3,S0,S1,DSR,DSL,MRN,CP,Q0,Q1,Q2,Q3);
inputD0,D1,D2,D3;
inputS0,S1;
inputDSR,DSL;
inputMRN;
inputCP;
outputQ0,Q1,Q2,Q3;
reg[3:0]Qaux;
wire[3:0]Data;
assignData[0]=D0;
assignData[1]=D1;
assignData[2]=D2;
assignData[3]=D3;
always@(posedgeCP)
begin
if(!MRN)
Qaux=0;
elseif(S1&S0)
Qaux=Data;
elseif(S1&!S0)
Qaux={Qaux[2:0],DSL};
elseif(!S1&S0)
Qaux={DSR,Qaux[2:0]};
elseif(!S1&S0)
Qaux=Qaux;
end
assignQ0=Qaux[0];
assignQ1=Qaux[1];
assignQ2=Qaux[2];
assignQ3=Qaux[3];
endmodule
//74HC194测试平台代码
//test194.v
`timescale1ns/1ns
moduletest194;
regD0,D1,D2,D3,S0,S1,DSR,DSL,MRN,CP;
wireQ0,Q1,Q2,Q3;
initialbegin
CP=0;
end
parameterclock_period=20;
always#(clock_period/2)CP=~CP;
initial
begin
D0=0;
repeat(20)
#20D0=$random;
end
initial
begin
D1=0;
repeat(20)
#20D1=$random;
end
initial
begin
D2=0;
repeat(20)
#20D2=$random;
end
initial
begin
D3=0;
repeat(20)
#20D3=$random;
end
initial
begin
S0=0;
repeat(20)
#20S0=$random;
end
initial
begin
S1=0;
repeat(20)
#20S1=$random;
end
initial
begin
MRN=0;
repeat(20)
#20MRN=$random;
end
initial
begin
DSR=0;
repeat(20)
#20DSR=$random;
end
initial
begin
DSL=0;
repeat(20)
#20DSL=$random;
end
HC194u194
(
.CP(CP),
.D0(D0),
.D1(D1),
.D2(D2),
.D3(D3),
.S1(S1),
.S0(S0),
.DSR(DSR),
.DSL(DSL),
.MRN(MRN),
.Q0(Q0),
.Q1(Q1),
.Q2(Q2),
.Q3(Q3)
);
endmodule
2、第一次仿真结果〔任选一个模块,请注明〕
74HC161
3、综合结果
4、第二次仿真结果〔综合后〕
第三次仿真结果〔布局布线后〕
4、根本门电路、组合电路和时序电路的程序烧录及验证〔3人小组共同完成〕
一、实验目的
1、熟悉利用EDA工具进行设计及仿真的流程。
2、熟悉实验箱的使用和程序下载〔烧录〕及测试的方法。
二、实验环境及仪器
1、Libero仿真软件。
2、DIGILOGIC-2023数字逻辑及系统实验箱。
3、ActelProasic3A3P030FPGA核心板及FlashPro4烧录器。
三、实验内容
1、新建一个工程文件,将前面已经设计好的74HC00、74HC02、74HC04、74HC08、74HC32、74HC86实例文件导入,在SmartDesign窗口分别添加这6个模块,完成相应连线。.按实验指导书P175的附录B.3中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。
2、新建一个工程文件,将前面已经设计好的74HC148、74HC138、74HC153、74HC85、74HC283实例文件导入,在SmartDesign窗口分别添加这5个模块,完成相应连线。按实验指导书P176的附录B.4中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。
3、新建一个工程文件,将前面已经设计好的74HC4511实例文件导入,在SmartDesign窗口添加这1个模块,完成相应连线。按实验指导书P173的附录B.2中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。
4、新建一个工程文件,将前面已经设计好的74HC74、74HC112、74HC194、74HC161实例文件导入,在SmartDesign窗口分别添加这4个模块,完成相应连线。按实验指导书P178的附录B.5中所列引脚对应表来分配引脚,最后通过烧录器烧录至FPGA核心板上。按分配的引脚连线,实测相应功能并记录结果。详细步骤请参考教材及实验指导书的相关内容。
四、实验结果和数据处理
表4-174HC00输入输出状态
输入端
输出端Y
A
B
LED
逻辑状态
0
0
亮
1
0
1
亮
1
1
0
亮
1
1
1
暗
0
表4-274HC02输入输出状态
输入端
输出端Y
A
B
LED
逻辑状态
0
0
亮
1
0
1
暗
0
1
0
暗
0
1
1
暗
0
表4-374HC04输入输出状态
输入端
输出端Y
A
LED
逻辑状态
0
亮
1
1
暗
0
表4-474HC08输入输出状态
输入端
输出端Y
A
B
LED
逻辑状态
0
0
暗
0
0
1
暗
0
1
0
暗
0
1
1
亮
1
表4-574HC32输入输出状态
输入端
输出端Y
A
B
LED
逻辑状态
0
0
暗
0
0
1
亮
1
1
0
亮
1
1
1
亮
1
表4-674HC86输入输出状态
输入端
输出端Y
A
B
LED
逻辑状态
0
0
暗
0
0
1
亮
1
1
0
亮
1
1
1
暗
0
表4-774LS148输入输出状态
控制
十进制数字信号输入
二进制数码输出
状态输出
I0
I1
I2
I3
I4
I5
I6
I7
A2
A1
A0
GS
EO
1
X
X
X
X
X
X
X
X
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
X
X
X
X
X
X
X
0
0
0
0
0
1
0
X
X
X
X
X
X
0
1
0
0
1
0
1
0
X
X
X
X
X
0
1
1
0
1
0
0
1
0
X
X
X
X
0
1
1
1
0
1
1
0
1
0
X
X
X
0
1
1
1
1
1
0
0
0
1
0
X
X
0
1
1
1
1
1
1
0
1
0
1
0
X
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
注:X为任意状态
表4-874HC138输入输出状态
使能输入
数据输入
译码输出
E3
A2
A1
A0
1
X
X
X
X
X
1
1
1
1
1
1
1
1
X
1
X
X
X
X
1
1
1
1
1
1
1
1
X
X
0
X
X
X
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
注:X为任意状态
表4-974HC153输入输出状态
选择输入
数据输入
输出使能输入
输出
S1
S0
1I0
1I1
1I2
1I3
1Y
X
X
X
X
X
X
1
0
0
0
0
X
X
X
0
0
0
0
1
X
X
X
0
1
1
0
X
0
X
X
0
0
1
0
X
1
X
X
0
1
0
1
X
X
0
X
0
0
0
1
X
X
1
X
0
1
1
1
X
X
X
0
0
0
1
1
X
X
X
1
0
1
注:X为任意状态
表4-1074HC85输入输出状态
比较输入
级联输入
输出
A3
A2
A1
A0
B3
B2
B0
B1
IA>B
IA=B
IA<B
A>B
A=B
A<B
1
X
X
X
0
X
X
X
X
X
X
1
0
0
0
X
X
X
1
X
X
X
X
X
X
0
0
1
1
1
X
X
1
0
X
X
X
X
X
1
0
0
0
0
X
X
0
1
X
X
X
X
X
0
0
1
1
0
1
X
1
0
0
X
X
X
X
1
0
0
0
0
0
X
0
0
1
X
X
X
X
0
0
1
1
1
0
1
1
1
0
0
X
X
X
1
0
0
0
0
1
0
0
0
1
1
X
X
X
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
注:X为任意状态
表4-1174HC283输入输出状态
进位输入
4位加数输入
4位被加数输入
输出加法结果和进位
Cin
A4
A3
A2
A1
B4
B3
B2
B1
Cout
S4
S3
S2
S1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
表4-1274HC4511输入输出状态
使能输入
数据输入
译码输出
LE
D
C
B
A
a
b
c
d
e
f
g
0
X
X
X
X
X
X
1
1
1
1
1
1
1
1
0
X
X
X
X
X
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
注:X为任意状态
表4-1374HC74输入输出状态
输入
输出
置位输入
复位输入
CP
D
1Q
0
1
X
X
1
0
1
0
X
X
0
1
1
1
↑
0
0
1
1
1
↑
1
1
0
0
0
X
X
1
1
注:X为任意状态
表4-1474HC112输入输出状态
输入
输出
置位输入
复位输入
1
1J
1K
1Q
0
1
X
X
X
1
0
1
0
X
X
X
0
1
1
1
↓
1
1
Qn
Qn
1
1
↓
0
1
0
1
1
1
↓
1
0
1
0
0
0
X
X
X
1
0
注:X为任意状态
表4-1574HC194输入输出状态
输入
输出
模式
串行
CP
并行
S1
S0
DSR
DSL
D0
D1
D2
D3
Q0n+1
Q1n+1
Q2n+1
Q3n+1
0
X
X
X
X
X
X
X
X
X
0
0
0
0
1
1
1
X
X
↑
D0
D1
D2
D3
D1
D2
D3
D4
1
0
0
X
X
↑
X
X
X
X
Q0n
Q1n
Q2n
Q3n
1
0
1
0
X
↑
X
X
X
X
0
Q0n
Q1n
Q2n
1
0
1
1
X
↑
X
X
X
X
1
Q0n
Q1n
Q2n
1
1
0
X
0
↑
X
X
X
X
Q1n
Q2n
Q3n
0
1
1
0
X
1
↑
X
X
X
X
Q1n
Q2n
Q3n
1
注:X为任意状态
表4-1674HC161输入输出状态
输入
输出
CP
CEP
CET
D3
D2
D1
D0
Q3
Q2
Q1
Q0
TC
0
X
X
X
X
X
X
X
X
0
0
0
0
0
1
↑
X
X
0
0
0
0
0
0
0
0
0
0
1
↑
1
1
0
D3
D2
D1
D0
D3
D2
D1
D0
*
1
↑
1
1
1
X
X
X
X
Count
Count
Count
Count
*
1
X
0
X
1
X
X
X
X
Q0n
Q1n
Q2n
Q3n
*
1
X
X
0
1
X
X
X
X
Q0n
Q1n
Q2n
Q3n
0
注:X为任意状态
*注:TC=CET*Q0n*Q1n*Q2n*Q3n
5、数字逻辑综合设计仿真及验证
一、实验目的
1、进一步熟悉利用EDA工具进行设计及仿真的流程。
2、熟悉利用EDA工具中的图形化设计界面进行综合设计。
3、熟悉芯片烧录的流程及步骤。
4、掌握分析问题、解决问题的综合能力,通过EDA工具设计出能解决实际问题的电路。
二、实验环境
1、Libero仿真软件。
2、DIGILOGIC-2023数字逻辑及系统实验箱。
3、ActelProasic3A3P030FPGA核心板及FlashPro4烧录器。
三、实验内容
1、编码器扩展实验
设计一个电路:当按下小于等于9的按键后,显示数码管显示数字,当按下大于9的按键后,显示数码管不显示数字。假设同时按下几个按键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人工作反思解析总结
- 本科毕业生自我鉴定集锦15篇
- 《小故事大道理》读后感集锦15篇
- 公司后勤管理工作总结
- 学校美术教师教学计划五篇
- 五年级单元作文七篇
- 大学生实习心得体会范文-14篇
- 形势与政策(黑龙江农业工程职业学院)知到智慧树答案
- 2024届河南省淮滨县高三下学期三校联考高考一模生物试卷
- 酒店装饰彩绘施工合同
- 9 《集合》 (教学设计)-2024-2025学年三年级上册数学人教版
- 浙江省杭州市养正中学2024-2025学年九年级上学期培优(月考)科学试卷(无答案)
- 北京市海淀区2023-2024学年高三上学期期末考试 英语 含答案
- GB/T 44432-2024快件报关信息交换规范
- 输电线路工程图纸识图的方法
- DL∕T 1455-2015 电力系统控制类软件安全性及其测评技术要求
- 巡检考试试题
- 提高维持性血液透析患者自体动静脉内瘘绳梯法穿刺率PDCA
- 【我国新能源汽车发展探究文献综述4000字】
- 产科危急重症早期识别中国专家共识(2024年版)要点解读
- 农学概论智慧树知到期末考试答案章节答案2024年四川农业大学
评论
0/150
提交评论