版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)____學(xué)院___專業(yè)___班________組
學(xué)號(hào)______
姓名____協(xié)作者_(dá)_____________教師評(píng)定_________________
實(shí)驗(yàn)題目_________基于Libero的數(shù)字邏輯設(shè)計(jì)仿真及驗(yàn)證實(shí)驗(yàn)_________
熟悉EDA工具的使用;仿真根本門電路。
仿真組合邏輯電路。
仿真時(shí)序邏輯電路。
根本門電路、組合電路和時(shí)序電路的程序燒錄及驗(yàn)證。
數(shù)字邏輯綜合設(shè)計(jì)仿真及驗(yàn)證。
實(shí)驗(yàn)報(bào)告
1、根本門電路
一、實(shí)驗(yàn)?zāi)康?/p>
1、了解基于Verilog的根本門電路的設(shè)計(jì)及其驗(yàn)證。
2、熟悉利用EDA工具進(jìn)行設(shè)計(jì)及仿真的流程。
3、學(xué)習(xí)針對(duì)實(shí)際門電路芯片74HC00、74HC02、74HC04、74HC08、74HC32、74HC86進(jìn)行VerilogHDL設(shè)計(jì)的方法。
二、實(shí)驗(yàn)環(huán)境
Libero仿真軟件。
三、實(shí)驗(yàn)內(nèi)容
1、掌握Libero軟件的使用方法。
2、進(jìn)行針對(duì)74系列根本門電路的設(shè)計(jì),并完成相應(yīng)的仿真實(shí)驗(yàn)。
3、參考教材中相應(yīng)章節(jié)的設(shè)計(jì)代碼、測(cè)試平臺(tái)代碼〔可自行編程〕,完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相應(yīng)的設(shè)計(jì)、綜合及仿真。
4、提交針對(duì)74HC00、74HC02、74HC04、74HC08、74HC32、74HC86〔任選一個(gè)〕的綜合結(jié)果,以及相應(yīng)的仿真結(jié)果。
四、實(shí)驗(yàn)結(jié)果和數(shù)據(jù)處理
1、所有模塊及測(cè)試平臺(tái)代碼清單
//74HC00代碼-與非
//HC00.v
moduleHC00(A,B,Y);
input[4:1]A,B;
output[4:1]Y;
assignY=~(A&B);
endmodule
//74HC00測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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
第一次仿真結(jié)果〔任選一個(gè)門,請(qǐng)注明,插入截圖,下同〕?!矊⒉ㄐ未翱诒尘霸O(shè)為白色,調(diào)整窗口至適宜大小,使波形能完整顯示,對(duì)窗口截圖。后面實(shí)驗(yàn)中的仿真使用相同方法處理〕
異或門:
綜合結(jié)果。〔將相關(guān)窗口調(diào)至適宜大小,使RTL圖能完整顯示,對(duì)窗口截圖,后面實(shí)驗(yàn)中的綜合使用相同方法處理〕
4、第二次仿真結(jié)果〔綜合后〕。答復(fù)輸出信號(hào)是否有延遲,延遲時(shí)間約為多少?
輸出信號(hào)有延遲,延遲時(shí)間為300ps。
5、第三次仿真結(jié)果〔布局布線后〕。答復(fù)輸出信號(hào)是否有延遲,延遲時(shí)間約為多少?分析是否有出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)。
輸出信號(hào)有延遲,延遲時(shí)間是4200ps。沒有出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)。
2、組合邏輯電路
一、實(shí)驗(yàn)?zāi)康?/p>
1、了解基于Verilog的組合邏輯電路的設(shè)計(jì)及其驗(yàn)證。
2、熟悉利用EDA工具進(jìn)行設(shè)計(jì)及仿真的流程。
3、學(xué)習(xí)針對(duì)實(shí)際組合邏輯電路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511進(jìn)行VerilogHDL設(shè)計(jì)的方法。
二、實(shí)驗(yàn)環(huán)境
Libero仿真軟件。
三、實(shí)驗(yàn)內(nèi)容
1、掌握Libero軟件的使用方法。
2、進(jìn)行針對(duì)74系列根本組合邏輯電路的設(shè)計(jì),并完成相應(yīng)的仿真實(shí)驗(yàn)。
3、參考教材中相應(yīng)章節(jié)的設(shè)計(jì)代碼、測(cè)試平臺(tái)代碼〔可自行編程〕,完成74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相應(yīng)的設(shè)計(jì)、綜合及仿真。
4、74HC85測(cè)試平臺(tái)的測(cè)試數(shù)據(jù)要求:進(jìn)行比較的A、B兩數(shù),分別為本人學(xué)號(hào)的末兩位,如“89〞,那么A數(shù)為“1000〞,B數(shù)為“1001〞。假設(shè)兩數(shù)相等,需考慮級(jí)聯(lián)輸入〔級(jí)聯(lián)輸入的各種取值情況均需包括〕;假設(shè)兩數(shù)不等,那么需增加一對(duì)取值情況,驗(yàn)證A、B相等時(shí)的比較結(jié)果。
5、74HC4511設(shè)計(jì)成擴(kuò)展型的,即能顯示數(shù)字0~9、字母a~f。
6、提交針對(duì)74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511〔任選一個(gè)〕的綜合結(jié)果,以及相應(yīng)的仿真結(jié)果。
1、所有模塊及測(cè)試平臺(tái)代碼清單
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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
第一次仿真結(jié)果〔任選一個(gè)模塊,請(qǐng)注明〕
74HC85
3、綜合結(jié)果
4、第二次仿真結(jié)果〔綜合后〕。答復(fù)輸出信號(hào)是否有延遲,延遲時(shí)間約為多少?
輸出信號(hào)有延遲,延遲時(shí)間為500ps。
第三次仿真結(jié)果〔布局布線后〕。答復(fù)輸出信號(hào)是否有延遲,延遲時(shí)間約為多少?分析是否有出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)。
輸出信號(hào)有延遲,延遲時(shí)間為4700,有出現(xiàn)競(jìng)爭(zhēng)
3、時(shí)序邏輯電路
一、實(shí)驗(yàn)?zāi)康?/p>
1、了解基于Verilog的時(shí)序邏輯電路的設(shè)計(jì)及其驗(yàn)證。
2、熟悉利用EDA工具進(jìn)行設(shè)計(jì)及仿真的流程。
3、學(xué)習(xí)針對(duì)實(shí)際時(shí)序邏輯電路芯片74HC74、74HC112、74HC194、74HC161進(jìn)行VerilogHDL設(shè)計(jì)的方法。
二、實(shí)驗(yàn)環(huán)境
Libero仿真軟件。
三、實(shí)驗(yàn)內(nèi)容
1、熟練掌握Libero軟件的使用方法。
2、進(jìn)行針對(duì)74系列時(shí)序邏輯電路的設(shè)計(jì),并完成相應(yīng)的仿真實(shí)驗(yàn)。
3、參考教材中相應(yīng)章節(jié)的設(shè)計(jì)代碼、測(cè)試平臺(tái)代碼〔可自行編程〕,完成74HC74、74HC112、74HC161、74HC194相應(yīng)的設(shè)計(jì)、綜合及仿真。
4、提交針對(duì)74HC74、74HC112、74HC161、74HC194〔任選一個(gè)〕的綜合結(jié)果,以及相應(yīng)的仿真結(jié)果。
四、實(shí)驗(yàn)結(jié)果和數(shù)據(jù)處理
1、所有模塊及測(cè)試平臺(tái)代碼清單
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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測(cè)試平臺(tái)代碼
//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、第一次仿真結(jié)果〔任選一個(gè)模塊,請(qǐng)注明〕
74HC161
3、綜合結(jié)果
4、第二次仿真結(jié)果〔綜合后〕
第三次仿真結(jié)果〔布局布線后〕
4、根本門電路、組合電路和時(shí)序電路的程序燒錄及驗(yàn)證〔3人小組共同完成〕
一、實(shí)驗(yàn)?zāi)康?/p>
1、熟悉利用EDA工具進(jìn)行設(shè)計(jì)及仿真的流程。
2、熟悉實(shí)驗(yàn)箱的使用和程序下載〔燒錄〕及測(cè)試的方法。
二、實(shí)驗(yàn)環(huán)境及儀器
1、Libero仿真軟件。
2、DIGILOGIC-2023數(shù)字邏輯及系統(tǒng)實(shí)驗(yàn)箱。
3、ActelProasic3A3P030FPGA核心板及FlashPro4燒錄器。
三、實(shí)驗(yàn)內(nèi)容
1、新建一個(gè)工程文件,將前面已經(jīng)設(shè)計(jì)好的74HC00、74HC02、74HC04、74HC08、74HC32、74HC86實(shí)例文件導(dǎo)入,在SmartDesign窗口分別添加這6個(gè)模塊,完成相應(yīng)連線。.按實(shí)驗(yàn)指導(dǎo)書P175的附錄B.3中所列引腳對(duì)應(yīng)表來分配引腳,最后通過燒錄器燒錄至FPGA核心板上。按分配的引腳連線,實(shí)測(cè)相應(yīng)功能并記錄結(jié)果。詳細(xì)步驟請(qǐng)參考教材及實(shí)驗(yàn)指導(dǎo)書的相關(guān)內(nèi)容。
2、新建一個(gè)工程文件,將前面已經(jīng)設(shè)計(jì)好的74HC148、74HC138、74HC153、74HC85、74HC283實(shí)例文件導(dǎo)入,在SmartDesign窗口分別添加這5個(gè)模塊,完成相應(yīng)連線。按實(shí)驗(yàn)指導(dǎo)書P176的附錄B.4中所列引腳對(duì)應(yīng)表來分配引腳,最后通過燒錄器燒錄至FPGA核心板上。按分配的引腳連線,實(shí)測(cè)相應(yīng)功能并記錄結(jié)果。詳細(xì)步驟請(qǐng)參考教材及實(shí)驗(yàn)指導(dǎo)書的相關(guān)內(nèi)容。
3、新建一個(gè)工程文件,將前面已經(jīng)設(shè)計(jì)好的74HC4511實(shí)例文件導(dǎo)入,在SmartDesign窗口添加這1個(gè)模塊,完成相應(yīng)連線。按實(shí)驗(yàn)指導(dǎo)書P173的附錄B.2中所列引腳對(duì)應(yīng)表來分配引腳,最后通過燒錄器燒錄至FPGA核心板上。按分配的引腳連線,實(shí)測(cè)相應(yīng)功能并記錄結(jié)果。詳細(xì)步驟請(qǐng)參考教材及實(shí)驗(yàn)指導(dǎo)書的相關(guān)內(nèi)容。
4、新建一個(gè)工程文件,將前面已經(jīng)設(shè)計(jì)好的74HC74、74HC112、74HC194、74HC161實(shí)例文件導(dǎo)入,在SmartDesign窗口分別添加這4個(gè)模塊,完成相應(yīng)連線。按實(shí)驗(yàn)指導(dǎo)書P178的附錄B.5中所列引腳對(duì)應(yīng)表來分配引腳,最后通過燒錄器燒錄至FPGA核心板上。按分配的引腳連線,實(shí)測(cè)相應(yīng)功能并記錄結(jié)果。詳細(xì)步驟請(qǐng)參考教材及實(shí)驗(yàn)指導(dǎo)書的相關(guān)內(nèi)容。
四、實(shí)驗(yàn)結(jié)果和數(shù)據(jù)處理
表4-174HC00輸入輸出狀態(tài)
輸入端
輸出端Y
A
B
LED
邏輯狀態(tài)
0
0
亮
1
0
1
亮
1
1
0
亮
1
1
1
暗
0
表4-274HC02輸入輸出狀態(tài)
輸入端
輸出端Y
A
B
LED
邏輯狀態(tài)
0
0
亮
1
0
1
暗
0
1
0
暗
0
1
1
暗
0
表4-374HC04輸入輸出狀態(tài)
輸入端
輸出端Y
A
LED
邏輯狀態(tài)
0
亮
1
1
暗
0
表4-474HC08輸入輸出狀態(tài)
輸入端
輸出端Y
A
B
LED
邏輯狀態(tài)
0
0
暗
0
0
1
暗
0
1
0
暗
0
1
1
亮
1
表4-574HC32輸入輸出狀態(tài)
輸入端
輸出端Y
A
B
LED
邏輯狀態(tài)
0
0
暗
0
0
1
亮
1
1
0
亮
1
1
1
亮
1
表4-674HC86輸入輸出狀態(tài)
輸入端
輸出端Y
A
B
LED
邏輯狀態(tài)
0
0
暗
0
0
1
亮
1
1
0
亮
1
1
1
暗
0
表4-774LS148輸入輸出狀態(tài)
控制
十進(jìn)制數(shù)字信號(hào)輸入
二進(jìn)制數(shù)碼輸出
狀態(tài)輸出
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為任意狀態(tài)
表4-874HC138輸入輸出狀態(tài)
使能輸入
數(shù)據(jù)輸入
譯碼輸出
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為任意狀態(tài)
表4-974HC153輸入輸出狀態(tài)
選擇輸入
數(shù)據(jù)輸入
輸出使能輸入
輸出
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為任意狀態(tài)
表4-1074HC85輸入輸出狀態(tài)
比較輸入
級(jí)聯(lián)輸入
輸出
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為任意狀態(tài)
表4-1174HC283輸入輸出狀態(tài)
進(jìn)位輸入
4位加數(shù)輸入
4位被加數(shù)輸入
輸出加法結(jié)果和進(jìn)位
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輸入輸出狀態(tài)
使能輸入
數(shù)據(jù)輸入
譯碼輸出
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為任意狀態(tài)
表4-1374HC74輸入輸出狀態(tài)
輸入
輸出
置位輸入
復(fù)位輸入
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為任意狀態(tài)
表4-1474HC112輸入輸出狀態(tài)
輸入
輸出
置位輸入
復(fù)位輸入
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為任意狀態(tài)
表4-1574HC194輸入輸出狀態(tài)
輸入
輸出
模式
串行
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為任意狀態(tài)
表4-1674HC161輸入輸出狀態(tài)
輸入
輸出
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為任意狀態(tài)
*注:TC=CET*Q0n*Q1n*Q2n*Q3n
5、數(shù)字邏輯綜合設(shè)計(jì)仿真及驗(yàn)證
一、實(shí)驗(yàn)?zāi)康?/p>
1、進(jìn)一步熟悉利用EDA工具進(jìn)行設(shè)計(jì)及仿真的流程。
2、熟悉利用EDA工具中的圖形化設(shè)計(jì)界面進(jìn)行綜合設(shè)計(jì)。
3、熟悉芯片燒錄的流程及步驟。
4、掌握分析問題、解決問題的綜合能力,通過EDA工具設(shè)計(jì)出能解決實(shí)際問題的電路。
二、實(shí)驗(yàn)環(huán)境
1、Libero仿真軟件。
2、DIGILOGIC-2023數(shù)字邏輯及系統(tǒng)實(shí)驗(yàn)箱。
3、ActelProasic3A3P030FPGA核心板及FlashPro4燒錄器。
三、實(shí)驗(yàn)內(nèi)容
1、編碼器擴(kuò)展實(shí)驗(yàn)
設(shè)計(jì)一個(gè)電路:當(dāng)按下小于等于9的按鍵后,顯示數(shù)碼管顯示數(shù)字,當(dāng)按下大于9的按鍵后,顯示數(shù)碼管不顯示數(shù)字。假設(shè)同時(shí)按下幾個(gè)按鍵
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度大型項(xiàng)目工程擔(dān)保委托合同3篇
- 文明禮儀微課程設(shè)計(jì)
- 插值與擬合的課程設(shè)計(jì)
- 幼兒園冬日森林課程設(shè)計(jì)
- 2024年版?zhèn)€人承包翻譯合同
- 汽車維修設(shè)備采購(gòu)合同
- 2024版智能消防報(bào)警系統(tǒng)安裝與維護(hù)服務(wù)合同5篇
- 2024年度物流服務(wù)合同:某物流公司與供應(yīng)商之間的物流服務(wù)事宜3篇
- 2024版房屋買賣定金及租賃管理合同樣本3篇
- 2024版汽車加油分期付款及積分獎(jiǎng)勵(lì)協(xié)議3篇
- 人工智能大模型的技術(shù)崗位與能力 培養(yǎng)研究報(bào)告
- 2024-2025學(xué)年浙江省九年級(jí)科學(xué)上冊(cè)期末練習(xí)卷
- 金銀花生產(chǎn)技術(shù)規(guī)程DB41-T 2187-2021
- 湘教版八年級(jí)美術(shù)期末試卷
- 骨科醫(yī)療質(zhì)量管理與持續(xù)改進(jìn)工作總結(jié)報(bào)告
- 主播競(jìng)業(yè)限制協(xié)議
- 四川省瀘州市高2023級(jí)高一學(xué)年末統(tǒng)一考試+語文
- 2024-2030年中國(guó)無人機(jī)(UAV)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- (高立牌)SC型施工升降機(jī)說明書
- 母嬰購(gòu)貨合同范本
- 茶葉風(fēng)味科學(xué)-制茶與評(píng)茶智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
評(píng)論
0/150
提交評(píng)論