1 系統(tǒng)設(shè)計
1.2設(shè)計要求
1.1.1 設(shè)計任務(wù)
設(shè)計并制作一臺出租車計費器。
1.1.2 性能指標(biāo)要求
① 用EDA實訓(xùn)儀的I/O設(shè)備和FPGA實現(xiàn)出租車計費器的設(shè)計。
② 出租車起步開始計程和計費,計程系統(tǒng)按實際公里數(shù)計程,計費系統(tǒng)首先顯示起步價(如7.0),車行駛2km以內(nèi),只收起步價7元。
③ 出租車行駛超過2km后,按每公里1.6元在7.0元的基礎(chǔ)上增加。
④ 出租車行駛超過10km后(或超過20元路費),每公里加收50%的車費,即車費變?yōu)槊抗?.4元。
⑤ 出租車達到目的地后,(用一個按鈕)計程和計費數(shù)據(jù)清零,為下一次計費開始。
1.2 設(shè)計思路及設(shè)計框圖
1.2.1設(shè)計思路
計程和計費都是十進制位的輸入,通過脈沖實現(xiàn)計數(shù)。計程通過分頻器的輸出作為輸入,產(chǎn)生的秒脈沖以實現(xiàn)計數(shù)功能。計費在LED數(shù)碼管上分為個位十位(例如起步價為7元,顯示器上顯示70,三公里時為86......),計程器和計費器在一個程序內(nèi)完成,分頻器用另一個程序完成,并將程序都生成一個元器件,用圖形法級聯(lián)在一起。上硬件仿真后,打開開關(guān)輸入脈沖,通過上升沿觸發(fā)使路程計算加一,并使總路計算模塊加一,到達相應(yīng)的公里數(shù)后沒每公里收費也隨之改變。
1.2.2總體設(shè)計框圖
2.1 總體電路圖
2.2 分頻器模塊
module fpq_(clk,KS,clk_1s);
input clk,KS;
output reg clk_1s;
reg[26:0] qs;
always @(posedge clk)
if(KS==1)
begin
if(qs==49999999) qs=0;
else qs=qs+1;
if(qs==24999999) clk_1s=0;
else clk_1s=1;
end
endmodule
分頻器
2.3計程計費器模塊
module CZCJFQ(clk,clrn,clk2,L1,L2,L3,L4,L5,L6);
input clk,clrn,clk2;
output L1,L2,L3,L4,L5,L6;
wire[15:0] Q;
reg[7:0] km;
reg[11:0] ZJ;
reg clk1;
reg [6:0] L1,L2,L3,L4,L5,L6;
initial clk1=1;
always @(posedge clk^clk2 or negedge clrn)
begin
if(~clrn) km[3:0]=0;
else begin
if(km[3:0]==9) km[3:0]=0;
else km[3:0]=km[3:0]+1;
if(km[3:0]==9) clk1=0;
else clk1=1;
end
end
always @(posedge clk1 or negedge clrn)
begin
if(~clrn) km[7:4]=0;
else begin
if( km[7:4]==9) km[7:4]=0;
else km[7:4]= km[7:4]+1;
end
else begin
if(ZJ[11:0]>9999) ZJ[11:0]=70;
else if(km[7:0]>'h9) ZJ[11:0]=ZJ[11:0]+24;
else if(km[7:0]>'h1) ZJ[11:0]=ZJ[11:0]+16;
else ZJ[11:0]=ZJ[11:0];
end
end
assign{Q[3:0]}={ZJ[11:0]}%10;
assign{Q[7:4]}={ZJ[11:0]}/10%10;
assign{Q[11:8]}={ZJ[11:0]}/100%10;
assign{Q[15:12]}={ZJ[11:0]}/1000;
路程計費器模塊
2.4 組合邏輯模塊(部分)
always@ (Q[0],Q[1],Q[2],Q[3])
begin
case ({Q[3],Q[2],Q[1],Q[0]})
4'B0000:L1=7'B1000000;
4'B0001:L1=7'B1111001;
4'B0010:L1=7'B0100100;
4'B0011:L1=7'B0110000;
3 調(diào)試過程
在編程代碼和編譯過程經(jīng)常出現(xiàn)問題,尤其是always@(*)語句上經(jīng)常出錯,以及在下載到硬件仿真的時候LED數(shù)碼管沒有反應(yīng),在向老師求助答疑后加入了些組合邏輯模塊,修改過后的程序能正常編譯,之后將程序下載到硬件中,打開開關(guān)檢查路程計算能正常運行,路程計費計算功能正常,可以達到驗收標(biāo)準(zhǔn)。
4 功能測試
4.1 測試儀器與設(shè)備
計算機一臺
EDA實訓(xùn)儀
4.2 性能指標(biāo)測試
打開開關(guān)后輸入脈沖可產(chǎn)生路程計算,隨著路程的遞增費用也按要求遞增,按下按鍵后數(shù)據(jù)可清零,也可以通過按下按鍵自行增加路程。
仿真波形圖(部分模塊)
-
FPGA設(shè)計
+關(guān)注
關(guān)注
9文章
428瀏覽量
26518 -
led數(shù)碼管
+關(guān)注
關(guān)注
2文章
73瀏覽量
22082 -
分頻器
+關(guān)注
關(guān)注
43文章
447瀏覽量
49912 -
EDA設(shè)計
+關(guān)注
關(guān)注
1文章
47瀏覽量
13682 -
計費器
+關(guān)注
關(guān)注
0文章
7瀏覽量
7331
發(fā)布評論請先 登錄
相關(guān)推薦
評論