可編程ASIC設(shè)計(jì)作業(yè)_第1頁(yè)
可編程ASIC設(shè)計(jì)作業(yè)_第2頁(yè)
可編程ASIC設(shè)計(jì)作業(yè)_第3頁(yè)
可編程ASIC設(shè)計(jì)作業(yè)_第4頁(yè)
可編程ASIC設(shè)計(jì)作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《可編程ASIC技術(shù)》課程作業(yè)2015

1.請(qǐng)對(duì)下列VerilogHDL模塊進(jìn)行仿真和分析,說(shuō)明其描述方式,畫(huà)出對(duì)應(yīng)的

邏輯圖或?qū)懗鲞壿嫳磉_(dá)式(組),并概括地說(shuō)明其邏輯功能。

moduleexeln(out,d3,d29dl9dO9sl,sO);

outputout;

inputd3,d29dl9dO9sl,sO;

not(not_sl,sl),(not_sO,sO);

and(outO,dO,not_sl,not_sO),(outl,dl9not_sl,sO);

and(out2,d2,si,not_sO),(out3,d3,si,sO);

or(out,outO,outl,out2,out3);

endmodule

將程序進(jìn)行功能仿真,功能仿真圖如下所示:

(1)當(dāng)s1=0,s0=0時(shí)

(2)當(dāng)s1=O,sO=1時(shí)

MasterTimeBar0ps小|Pointer:4.9n$Interval:4.9nsStart:

Valueat

Name

0ps

?0doA0

?1dlA0

?2d2A0

?3(13A0

*4sOA1

?5siA0

?6outA0

(3)當(dāng)s1=1,s0=0時(shí)

(4)當(dāng)s1=1,s0=1時(shí)

MasterTimeBar:0ps"Pointer:200psInterval:200psSt<

10.0ns20.0ns30.0ns40.0ns

Name0ps°PS

dOA0__________________________________||____________

21dlA0________________|I1|____________

?2d2A0________|111111

?3d3A°_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1____________

?4sOA1

?5siA1

outA0__J-l_O______

由仿真圖分析知,根據(jù)不同的s1和so,輸出通道進(jìn)行變化:

(1)當(dāng)s1=0,s0=0時(shí),out=dO;

(2)當(dāng)s1=0,s0=1時(shí),out=d1;

(3)當(dāng)s1=1,s0=0時(shí),out=d2;

(4)當(dāng)s1=1,s0=1時(shí),out=d3o

邏輯表達(dá)式組:

Out=d(s1s2)

實(shí)現(xiàn)的邏輯功能就是典型的4選1數(shù)據(jù)選擇器

2.請(qǐng)對(duì)下列VerilogHDL模塊進(jìn)行仿真和分析,用時(shí)序波圖形或流程框圖描述

其行為,并概括地說(shuō)明其邏輯功能。如果要使輸出fd_out的占空比為50%,需

要對(duì)該模塊做什么修改?

moduleexe2n(fd_out,elk,d,clr);

outputfd_out;

regfd_out;

input[15:0]d;

inputelk,clr;

reg[15:0]cut;

always@(posedgeelk)

begin

if(!clr)ent<=4'h0000;

elsebegin

ent<=ent-1;

if(cnt==O)beginfd_out<=1;ent<=d;end

elsefd_out<=0;

end

end

endmodule

(1)將程序進(jìn)行功能仿真,仿真波形圖如圖所示:

MasterTimeBar:Ops<|?|Pointer|2346nsIriteival:23.46n$Start:End:[

由圖知,該程序?qū)崿F(xiàn)的是可變模的減法計(jì)數(shù)器,輸出的是每當(dāng)?shù)竭_(dá)設(shè)定模

值就輸出1,相當(dāng)于對(duì)設(shè)定模進(jìn)行檢測(cè)。

(2)若要使輸出fd_out占空比為50%,則可以規(guī)定模值d=1,如下圖:

3.請(qǐng)對(duì)下列VerilogHDL模塊進(jìn)行仿真和分析,寫(xiě)出對(duì)應(yīng)的邏輯表達(dá)式(組)

或真值表,并概括地說(shuō)明其邏輯功能。

moduleexe3n(op_result,func_sel,op_a,op_b);

output[7:0]op_result;

input[2:0]func_sel;

input[3:0]op_a,op_b;

reg[7:0]op_result;

always@(func_selorop_aorop_b)

begin

case(func_sel)

3'b000:op_result<=op_a+op_b;

3'b001:op_result<=op_a-op_b;

3'b010:op_result<=op_a*op_b;

3'b011:op_result<=op_a/op_b;

3fbl00:op_result<=op_a&op_b;

315101:op_result<=op_aIop_b;

315110:op_result<=op_aAop_b;

315111:op_result<=op_a~八op_b;

endcase

end

endmodule

MuxO

DMDCT

將程序進(jìn)行功能仿真,功能仿真波形如圖:

MasterTimeBar:10.0n$<|Pointer:244p$Intervat霸屏nsStart[End:

)ps10.0ns20.0n30.Cns40.0ns50.0n60.0n.70.0n80.0產(chǎn)

Value

Name

10010.Cns

u^o國(guó).一.lAI([0][1]X[2][3]X⑷x15]X[6JX⑺X。

最4田P_aU!5

1^9國(guó)P_bU110

金14□suitV21(15251X500X15X240XIE

;;

15--■■7]UI___________-1________________________________._______________________________1L

216-..6]u-------------1__________________________1L

017-.5]u________________________________1L

a18-..4]uL

319-.3]u1_r-1

Q20-...2]UI111

<£>21-??.1]u

L..o]________________??________r

322uL____________n1

(1)當(dāng)fun_sel=000時(shí),op_result=op_a+op_b

(2)當(dāng)fun_sel=001時(shí),op_result=op_a-op_b;

(3)當(dāng)fun_sel=010時(shí),op_result=op_a*op_b;

(4)當(dāng)fun_sel=011時(shí),op_result=op_a/op_b;

(5)當(dāng)fun_sel=100時(shí),op_result=op_a&op_b;

(6)當(dāng)fun_sel=101時(shí),op_result=op_a|op_b;

(7)當(dāng)fun_sel=110時(shí)op_result=op_aAop_b;

(8)當(dāng)fun_sel=111時(shí)op_result=op_a~Aop_b;

由此可知,該段程序?qū)崿F(xiàn)的功能是:

根據(jù)不同的輸入選擇信號(hào)(000,001,010,011,100,101,110,111),對(duì)于兩個(gè)四

位二進(jìn)制數(shù)進(jìn)行加、減、乘、除、與、或、異或、同或運(yùn)算。

4.請(qǐng)用持續(xù)賦值語(yǔ)句,設(shè)計(jì)一個(gè)可實(shí)現(xiàn)帶使能端(E=l使能)的雙4選1數(shù)據(jù)

選擇器的VerilogHDL模塊。

帶使能端的雙4選1的數(shù)據(jù)選擇器程序:

moduleexe4n(out,in0,inl,in2,in3,in4,in5,in6,in7,sel,en);

inputinO,in1,in2,in3,in4,in5,in6,in7;

outputout;

input[2:0]sei;

inputen;

regout;

always@(inOoriniorm2orm3orin4orin5orin6orin7orsei)

begin

if(en)out<=0;

elsebegin

case(sel)

3*b000:out=inO;

3,b001:out=inl;

3boi0:out=in2;

3,b011:out=in3;

3'bl00:out=in4;

3'bl01:out=in5;

31bl10:out=in6;

31bl11:out=in7;

default:out=3,bx;

endcase

end

end

endmodule

Tn

n7o

n6o

n5n

n4o

n3o

n2B

n1

nOo

MUX

en^--------------------------------------

當(dāng)使能端en=l,無(wú)效時(shí),out=0;

TimeBar:0pi如。g-|一訴一四「。依E做|5

k

k

H翳

5.請(qǐng)用VerilogHDL或VHDL,設(shè)計(jì)一個(gè)功能和引腳與74138類(lèi)似的譯碼器,

并在Quartus下對(duì)其進(jìn)行仿真驗(yàn)證。

譯碼器程序:

moduleexe5n(out,in,en);

output[7:0]out;/*定義八位二進(jìn)制碼輸出口*/

input[2:0]in;/*定義三位二進(jìn)制碼輸入口*/

input[2:0]en;/*三個(gè)便能端*/

reg[7:0]out;

always@(inoren)

begin

if(en==3'bl00)

case(in)

3'dO:out=8'blllllllO;

3'dl:out=8'bllllll01;

3'd2:out=8'blllll011;

3'd3:out=8'bllll0111;

3'd4:out=8'blll01111;

3'd5:out=8'bll011111;

3'd6:out=8'bl0111111;

3'd7:out=8'b01111111;

endcase

elseout=8'bllllllll;

end

endmodule

DecoderO

譯碼器仿真波形

6.請(qǐng)用VerilogHDL或VHDL,設(shè)計(jì)一個(gè)可同步預(yù)置、異步清零的8位移位寄

存器,并在Quartus下對(duì)其進(jìn)行仿真驗(yàn)證。

可預(yù)置、可清零的移位寄存器程序:

moduleexe6n(out,in,reset,set,elk);

output[7:0]out;/*定義四位輸出端*/

inputin,reset,set,elk;/*輸入信號(hào)、清零端、置數(shù)端、時(shí)鐘信號(hào)*/

reg[7:0]out;

reg[7:0]md;/*置數(shù)寄存器*/

always@(posedgeelk)

begin

beginmd=4'b0000U01;end/*這里預(yù)置數(shù)為00001101,可以根據(jù)需要更改列

if(reset)

beginout<=0;end

else

begin

if(set)

beginoutv=md;end/*置數(shù)信號(hào)為1,置數(shù)*/

else

beginout<={out,in};end

end

end

endmodule

移位寄存器的仿真波形圖

7.請(qǐng)用VerilogHDL或VHDL,設(shè)計(jì)一個(gè)上升沿觸發(fā)的可預(yù)置、可清零的256

進(jìn)制計(jì)數(shù)器,并在Quartus下對(duì)其進(jìn)行仿真驗(yàn)證。如果要將其改為60進(jìn)制計(jì)數(shù)

器,應(yīng)對(duì)該設(shè)計(jì)做哪些修改?

(1)可預(yù)置、可清零的256進(jìn)制計(jì)數(shù)器程序:

moduleexe7n(out,in,reset,set,elk);

output[7:0]out;/*計(jì)數(shù)器的輸出端*/

input[7:0]in;/*預(yù)置初始值的輸入段*/

inputreset,set,elk;

reg[7:0]out;

always@(posedgeelk)

begin

if(!reset)outv=8'h00000000;/*清零端,低電平有效*/

elseif(se。outv=in;/*預(yù)置數(shù)*/

elseout<=out+l;

end

endmodule

out(6]-reg0

仿真波形:

(2)可預(yù)置、可清零的60進(jìn)制計(jì)數(shù)器程序:

moduleexe7n(out,in,reset,set,elk);

output[7:0]out;/*計(jì)數(shù)器的輸出端*/

input[7:0]in;/*預(yù)置初始值的輸入段*/

inputreset,set,elk;

reg[7:0]out;

always@(posedgeelk)

begin

if((!reset)||(out==8'b00111100))out<=8'h00000000;/*這里遇到60時(shí)

就清零,這樣實(shí)現(xiàn)了10進(jìn)制*/

elseif(set)out〈=in;/*預(yù)置數(shù)*/

elseout<=out+1;

end

endmodule

仿真波形:

11.875ns<||Pointer:597.31nsInterval:585.44n$Start:

NAMasterTimeBar:End:

E

8.請(qǐng)使用VerilogHDL,分別用結(jié)構(gòu)描述、數(shù)據(jù)流描述、行為描述三種方式,設(shè)

計(jì)一個(gè)8位可級(jí)聯(lián)加法器(有進(jìn)位輸入、進(jìn)位輸出),并比較上述三種描述方式

各自的優(yōu)缺點(diǎn)。

8位加法器結(jié)構(gòu)描述程序:

/*主程序*/

moduleexe8n(sum,cout,a,b,cin);

inputcin;input[7:0]a,b;output[7:0]sum;outputcout;

full_addlf0(a[0],b[0],cin,sum[0],cinl);

full_add1fl(a[l],b[l],cin1,sum[l],cin2);

full_addlf2(a[2],b[2],cin2,sum[2],cin3);

full_addlf3(a[3],b[3],cin3,sum[3],cin4);

full_add1f4(a[4],b[4],cin4,sum[4],cin5);

full.addlf5(ar5],b[5],cin5,sum[5],cin6);

full_addlf6(a[6],b[6],cin6,sum[6],cin7);

full.addlf7(a[7],b[7],cin7,sum[7],cin8);

endmodule/*調(diào)用程序*/

modulefull_add1(a,b,cin,sum,cout);

inputa,b,cin;outputsum,cout;wiresi,ml,m2,m3;

and(m1,a,b),(m2,b,cin),(m3,a,cin);

xor(sl,a,b),(sum,s1,cin);or(cout,mI,m2,m3);

endmodule

MasterTimeBar:80.0ns州Pointer|79L01nsInterval-990p$Start:End:

8位加法器數(shù)據(jù)流描述程序:

moduleexe82n(count,sum,a,b,cin);/*進(jìn)位信號(hào)、和、兩個(gè)加數(shù)、低位的進(jìn)位信號(hào)*/

inputcin;/*低位的進(jìn)位信號(hào),作為低位加法器,該信號(hào)為0;作為高位加法器,

該信號(hào)根據(jù)進(jìn)位變化*/

input[7:0]a,b;

output[7:0]sum;

outputcount;

assign{count,sum}=a+b+cin;

endmodule

仿真波形

8位加法器行為描述程序:

moduleexe83n(count,sum,a,b,cin);

inputcin;/*低位的進(jìn)位信號(hào),作為低位加法器,該信號(hào)為0;作為高位加法器,

該信號(hào)根據(jù)進(jìn)位變化*/

input[7:0]a,b;/*兩個(gè)兩位二進(jìn)制加數(shù)*/

output[7:0]sum;/*和*/

outputcount;/*進(jìn)位信號(hào)*/

reg[7:0]sum;

regcount;

always?(aorborcin)

begin

{count,sum}=a+b+cin;

end

endmodule

仿真波形:

9.請(qǐng)利用狀態(tài)機(jī)設(shè)計(jì)一個(gè)序列檢測(cè)器,該檢測(cè)器在輸入序列為“1001”時(shí)輸出為

1,其他情況下輸出為0。請(qǐng)畫(huà)出狀態(tài)轉(zhuǎn)移圖,并用VerilogHDL進(jìn)行設(shè)計(jì)和仿真。

狀態(tài)說(shuō)明:

S0:表示初始狀態(tài);

S1:表示檢測(cè)到一個(gè)“1”信號(hào);

S2:表示檢測(cè)到一個(gè)“10”信號(hào);

S3:表示檢測(cè)到一個(gè)“100”信號(hào);

S4:表示檢測(cè)到一個(gè)“1001”信號(hào);

狀態(tài)圖:

序列檢測(cè)器程序:

moduleexe9n(out,in,elk,reset);

outputouty*結(jié)果輸出端*/

inputin;/*串行輸入的數(shù)據(jù)*/

inputreset,elk;/*清零信號(hào)、時(shí)鐘信號(hào)*/

regout;

reg[2:0]S,NS;

parameterS0=3'h000,Sl=3'h001,S2=3'h010,S3=3'h01l,S4=3'hl00;/*K夫態(tài)編碼*/

always?(posedgeelkornegedgereset)/*根據(jù)輸入信號(hào)更新?tīng)顟B(tài)*/

begin

if(!reset)S<=S0;

elseS<=NS;

end

always?(Sorin)/*根據(jù)輸入,鎖存記憶輸入信號(hào)*/

begin

case(S)

SO:if(in)NS=S1;

elseNS=S0;

Sl:if(in)NS=S1;

elseNS=S2;

S2:if(in)NS=S1;

elseNS=S3;

S3:if(in)NS=S0;

elseNS=S4;

S4:if(in)NS=S1;

elseNS=S0;

endcase

end

always@(Sorresetorin)/*輸出對(duì)應(yīng)的結(jié)果*/

begin

if(!reset)out<=0;

elseif(S==S4)out<=1;

elseout<=0;

end

endmodule

仿真波形:

序列檢測(cè)器檢測(cè)“1001”信號(hào)仿真波形圖

10.請(qǐng)?jiān)O(shè)計(jì)一個(gè)加法器,實(shí)現(xiàn)sum=a0+al+a2+a3,a0、al、a2、a3寬度都是8位。

如用下面兩種方法實(shí)現(xiàn),哪種方法更好一些(即速度更快and/or資源更省)。

(1)sum=((a0+al)+a2)+a3

(2)sum=(a0+al)+(a2+a3)

(1)加法器程序:

moduleexe1On(sum,cout,cout1,cout2,aI,a2,a3,a4,cin,clk);

output[7:0]sum;/*和*/

outputcout1,cout2,cout;/*每執(zhí)行一個(gè)加法產(chǎn)生的進(jìn)位信號(hào)*/

input[7:0]al,a2,a3,a4;/*四個(gè)八位二進(jìn)制數(shù)*/

inputcin,clk;/*cin為低位進(jìn)位信號(hào),低位加法時(shí)為0,elk為時(shí)鐘信號(hào)*/

reg[7:0]Sl,S2,sum;

regcoutl,cout2,cout;

always@(posedgeelk)

begin

{coutl,Sl}=al+a2+cin;/*第一個(gè)時(shí)鐘來(lái)執(zhí)行第一步加法去

end

always@(posedgeelk)

begin

{cout2,S2}=Sl+a3;/*第二個(gè)時(shí)鐘來(lái)執(zhí)行第二步加法*/

end

always@(posedgeelk)

begin

{cout,sum}=S2+a4;/*第三個(gè)時(shí)鐘來(lái)執(zhí)行第三步加法*/

end

endmodule

經(jīng)典時(shí)序仿真圖:

tsutcoCustomDelays

Value

FromS1[0]

To52(61

Clockperiod6.800n$

Freouencv147.06MHz

(2)程序:

moduleexe10_2n(cout1,cout2,cout,sum,a1,a2,a3,a4,cin,clk);

output[7:0]sum;/*和*/

outputcoutl,cout2,cout;/*每執(zhí)行一個(gè)加法產(chǎn)生的進(jìn)位信號(hào)*/

input[7:0]al,a2,a3,a4;/*四個(gè)八位二進(jìn)制數(shù)*/

inputcin,clk;/*cin為低位進(jìn)位信號(hào),低位加法時(shí)為0,elk為時(shí)鐘信號(hào)*/

reg[7:0]Sl,S2,sum;

regcoutl,cout2,cout;

always@(posedgeelk)

begin

{coutl,Sl}=al+a2+cin;/*第一個(gè)時(shí)鐘來(lái)執(zhí)行第一步加法*/

end

always@(posedgeelk)

begin

{cout2,S2)=a3+a4;/*第二個(gè)時(shí)鐘來(lái)執(zhí)行第二步加法*/

end

always?(posedgeelk)

begin

{cout,sum}=Sl+S2;/*第三個(gè)時(shí)鐘來(lái)執(zhí)行第三步加法*/

end

endmodule

經(jīng)典時(shí)序仿真圖:

RegisteredPerfor?ance|tpd|tsu|tco|th|CustomDelays|

Oock:[ciiT

__________Value

FromS2j6j-

To_______$um(6rreg0

Clockperiod7.500ns

Frequency133.33MHz

由圖知,明顯第一種方法速度更快點(diǎn)!

11.請(qǐng)用流水線技術(shù)對(duì)上例中的sum=((a0+a1)+a2)+a3的實(shí)現(xiàn)方式進(jìn)行優(yōu)化,對(duì)

比最高工作頻率,并分析說(shuō)明流水線設(shè)計(jì)技術(shù)為何能提高數(shù)字系統(tǒng)的工作頻率?

(1)未采用流水線技術(shù)程序:

moduleexe11n(sum,cout,cout1,cout2,aI,a2,a3,a4,cin,clk);

output[7:0]sum;/*和*/

outputcout1,cout2,cout;/*每執(zhí)行一個(gè)加法產(chǎn)生的進(jìn)位信號(hào)*/

input[7:0]al,a2,a3,a4;/*四個(gè)八位二進(jìn)制數(shù)*/

inputcin,clk;/*cin為低位進(jìn)位信號(hào),低位加法時(shí)為0,dk為時(shí)鐘信號(hào)*/

reg[7:0]Sl,S2,sum;

regcoutl,cout2,cout;

always@(posedgeelk)

begin

{coutl,Sl}=al+a2+cin;/*第一個(gè)時(shí)鐘來(lái)執(zhí)行第一步加法*/

end

always@(posedgeelk)

begin

{cout2,S2}=Sl+a3;/*第二個(gè)時(shí)鐘來(lái)執(zhí)行第二步加法7

end

always@(posedgeelk)

begin

{cout,sum}=S2+a4;/*第三個(gè)時(shí)鐘來(lái)執(zhí)行第三步力口法*/

end

endmodule

未采用流水線技術(shù)經(jīng)典時(shí)序仿真圖:

ICuitMI

(2)采用流水線技術(shù)程序:

moduleaddderlI_2n(coutl,cout2,cout3,sum,al,a2,a3,a4,cin,clk);

output[7:0]sum;/*總和*/

outputcoutl,cout2,cout3;/*每執(zhí)行兩個(gè)數(shù)相加產(chǎn)生的進(jìn)位信號(hào)*/

input[7:0]al,a2,a3,a4;/*四個(gè)加數(shù)*/

inputcin,elk;/*低位進(jìn)位信號(hào),作低位加法器為0、時(shí)鐘信號(hào)*/

reg[7:0]sum,suml,sum2;

regcoutl,cout2,cout3,firstc,secondc,thirdc;

reg[3:0]tempal,tempa2,tempa3,tempbl,tempb2,tempb3,firstsum,secondsum,thirdsum;

/*存儲(chǔ)每四位相加的寄存器類(lèi)型數(shù)*/

always@(posedgeelk)

begin

{firstc,firstsum}=al[3:0]+a2[3:0]+cin;/*a1和a2低四位相加*/

tempal=al[7:4];

tempbl=a2[7:4];

end

always@(posedgeelk)

begin

{cout1,sum1[7:4]}=tempa1+tempb14-firstc;/*a2和a2高四位相加*/

suml[3:0]=firstsum;

end

always@(posedgeelk)

begin

{secondc,secondsum)=sum1[3:0]+a3[3:0];/*前兩數(shù)的和的低四位和a3低四位

相加*/

tempa2=suml[7:4];

tempb2=a3[7:4];

end

always@(posedgeelk)

begin

{cout2,sum2[7:4]}=tempa2+tempb2+secondc;/*前兩數(shù)的和的高四位和a3高四

位相加*/

sum2[3:0]=secondsum;

end

always@(posedgeelk)

begin

{thirdc,thirdsum}=sum2[3:0]+a4[3:01;/*前三數(shù)的和的低四位和a4低四位相加

*/

tempa3=sum2[7:4];

tempb3=a4f7:4];

end

always@(posedgeelk)

begin

{cout3,sum[7:4])=tempa3+tempb3+thirdc;/*前兩數(shù)的和的高四位和a2高四位

相加*/

sum[3:0]=thirdsum;

end

endmodule

流水線技術(shù)經(jīng)典時(shí)序仿真圖:

NrArww|ipd|ttu|tc?|U|C?xit4a|

lenob2tol

wm2[5]

aockpwd&500m

Fmouencv153?MHr

采用流水線技術(shù)提高工作頻率的原因:采用流線技術(shù)就是用一級(jí)一級(jí)的寄存

器組將大的組合邏輯切割成小的組合邏輯,以犧牲電路的面積來(lái)?yè)Q取速度的。這

樣就相當(dāng)于分工,把一個(gè)大的工作分成幾部分同時(shí)進(jìn)行,這樣就提升了速度。

12.請(qǐng)利用VerilogHDL或VHDL,設(shè)計(jì)一個(gè)可利用FPGA實(shí)驗(yàn)裝置實(shí)現(xiàn)的電

子定時(shí)器。要求能夠:①定時(shí)值分為100秒、60秒兩檔,利用開(kāi)關(guān)Set來(lái)選擇;

②利用外部輸入的10MHz晶振信號(hào),分頻得到10Hz時(shí)鐘信號(hào)(周期為0.1S);

③從按鍵Start按下時(shí)開(kāi)始倒數(shù)計(jì)時(shí)(即減法計(jì)數(shù));④利用3位共陰數(shù)碼管,即

時(shí)顯示當(dāng)前計(jì)時(shí)值XY.Z;⑤當(dāng)定時(shí)時(shí)間到(即計(jì)數(shù)值為0)時(shí),停止計(jì)數(shù)并發(fā)

出報(bào)警信號(hào)Alarm(高電平有效)。

程序:

moduleexe12n(clk,key,dig,seg);

inputelk;

input[1:0]key;

output[7:0]dig;

outputf7:0]seg;

reg[7:0]seg_r;

reg[7:0]dig_r;

reg[3:0]disp_dat;

reg[24:0]count;

reg[15:0]hour;

regsec,keyen;

reg[1:0]dountl,dount2,dount3;

wire[1:0]key_done;

assigndig=dig_r;

assignseg=seg_r;

always@(posedgeelk)

begin

count=count+rbl;

if(count==25'd600000)

begin

co

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論