版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、EDA技術(shù)課程設(shè)計報告 一、設(shè)計題目及要求: 出租車計費器(1)具有行車?yán)锍逃嬞M、等待時間計費、起價三部分,最大顯示金額99.99元(2)起價:三公里內(nèi)8元,等待時間超過10分鐘1元/10分鐘,行車?yán)锍虇蝺r1元,價格數(shù)值可修改。二、設(shè)計思路: 首先用分頻模塊產(chǎn)生三個分頻,一個用來計算等到時間超過10分鐘時的價格,一個用來計算行車?yán)锍坛^三公里時的價格,還有一個用于計算等待時間以及行車?yán)锍?。用計量模塊計算等待時間,若超過十分鐘,則使en1為1,否則為0,若行車?yán)锍坛^3公里,則使en0為1,否則為0。用控制模塊根據(jù)en1和en0的值選擇計費時鐘。用計費模塊進行計費。最后用顯示模塊進行8個數(shù)碼管的
2、依次顯示。三、各個模塊的具體實現(xiàn):分頻模塊思路:輸入400HZ的時鐘,產(chǎn)生一個20分頻的時鐘(即20HZ)用來計算等待時間超過10分鐘時的0.1元/min;再產(chǎn)生一個2分頻的時鐘(即200HZ)用來計算行車?yán)锍坛^三公里時的1元/公里。最后產(chǎn)生一個1HZ的時鐘,用做幾個子模塊的時鐘。1、分頻模塊的源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fp is -分頻模塊port( clk_400:in std_logic;
3、 -輸入400HZ的時鐘 q2:out std_logic; -二分頻時鐘,用來計算里程超過3公里的價錢 q20:out std_logic; -二十分頻時鐘,用來計算等待時間超過10分鐘的價錢 q1:out std_logic); -幾個子模塊的時鐘end fp;architecture behav of fp isbegin process(clk_400) variable count2:integer range 0 to 199; variable count20:integer range 0 to 19; variable count1 :integer range 0 to 3
4、99; begin if clk_400event and clk_400=1 then -上升沿檢測 if count2=199 -產(chǎn)生2分頻的時鐘 then count2:=0;q2=1; else count2:=count2+1;q2=0; end if; if count20=19 -產(chǎn)生20分頻的時鐘 then count20:=0;q20=1; else count20:=count20+1;q20=0; end if; if count1=399 -產(chǎn)生子模塊的時鐘 then count1:=0;q1=1; else count1:=count1+1;q1=0; end if;
5、 end if;end process;end behav; 分頻模塊波形仿真圖:clk_400是產(chǎn)生400HZ的脈沖,q1產(chǎn)生的是1HZ的脈沖,當(dāng)?shù)却龝r用來累計等待時間,當(dāng)行駛時用來累計行駛的路程;q2是一個兩分頻的脈沖,產(chǎn)生200HZ的脈沖,相當(dāng)于是1元,用來計算超出3公里時的價錢,每公里1一元;q20是一個20分頻的脈沖,產(chǎn)生的是20HZ的脈沖,相當(dāng)于是0.1元,用來計算等待時間超過十分鐘時的價錢,每分鐘是0.1元。分頻模塊封裝形式:控制模塊思路:如果en1為1,則表示等待時間超過10分鐘,選擇20分頻的時鐘,clk_20;如果en0等于1,表示行車?yán)锍坛^3公里,選擇2分頻的時鐘,cl
6、k_2。2、控制模塊的源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity kongzhi1 isport( en0,en1:in std_logic; clk_in20:in std_logic; clk_in2:in std_logic; clk_out:out std_logic);end kongzhi1;architecture behave of kongzhi1 isbeginprocess(en0,en1)b
7、egin if en0=1 then -行車?yán)锍坛^3公里,選擇2分頻時鐘 clk_out=clk_in2; elsif en1=1 then -等待時間超過10分鐘,選擇20分頻時鐘 clk_out=clk_in20; end if;end process;end behave;控制模塊的波形仿真圖:en1=1,選擇clk_20,表示0.1元/min;en0=1,選擇clk_2,表示1元/公里??刂颇K的封裝形式:3、計量模塊源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.s
8、td_logic_unsigned.all;entity count isport( start:in std_logic; -start為1表示有出租車接到顧客 stop:in std_logic; -stop為1表示開始等待 q1:in std_logic; -時鐘 en1,en0:buffer std_logic; -選擇信號 k1,k0:buffer std_logic_vector(3 downto 0); -里程數(shù)k0是個位,k1是十位 m0,m1:buffer std_logic_vector(3 downto 0) -等待時間,m0是個位,m1是十位);end count;ar
9、chitecture behav of count issignal wt:integer range 0 to 59; -等待時間計時,單位是秒beginprocess(q1) begin if q1event and q1=1 then if start=0then -沒有顧客時清零 wt=0;en1=0;en0=0;m1=0000;m0=0000; k1=0000; k0=0000; elsif stop=1 then -開始等待 if wt=59 then wt=0; -計時滿1秒 if m0=1001 then m0=0000; -最大顯示59min if m1=0101 then
10、m1=0000; else m1=m1+1; end if; else m0then en1=1; -等待時間超過10min,en1為1,否則為0 else en1=0; end if; else wt=wt+1;en1=0; end if; else if k0=1001then k0=0000; -開始計算里程數(shù),最大為99 if k1=1001 then k1=0000; else k1=k1+1; end if; else k0then en0=1; -如果里程數(shù)大于3公里,則en0為1,否則為0 else en1=0;en0=0; end if; end if; end if;end
11、 process;end behav;計量模塊波形仿真圖:Start為1,stop為1,表示開始等待,m1,m0,wt開始計時,wt滿60s向m0進1。仍然是在計時,當(dāng)計時滿10min時en1為1當(dāng)stop為0時,表示在行駛,k1,k0開始據(jù)算里程數(shù),當(dāng)計滿3公里時,en0為1。計量模塊封裝形式:4、計費模塊源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity money isport( clkout:in std_logi
12、c; -選擇好的時鐘 start:in std_logic; c0:buffer std_logic_vector(3 downto 0); -價格的十位 c1:buffer std_logic_vector(3 downto 0); -價格的個位 c2:buffer std_logic_vector(3 downto 0); -價格的小數(shù)點后第一位 c3:buffer std_logic_vector(3 downto 0) -價格的小數(shù)點后第二位 );end money;architecture behav of money isbeginprocess(start,clkout)begi
13、n if start=0then -沒有顧客時清零 c0=0000; c1=0000; c2=1000; c3=0000; elsif clkoutevent and clkout=1then -每來一個計費脈沖就進行一次計費 if c3=1001then c3=0000; if c2=1001then c2=0000; if c1=1001then c1=0000; if c0=1001then c0=0000; else c0=c0+1; end if; else c1=c1+1; end if; else c2=c2+1; end if; else c3=c3+1; end if; en
14、d if;end process;end behav; 計費模塊波形仿真圖:start為1,開始計費,格式是:c0c1.c2c3,起步價是8元。 計費模塊封裝形式:5、顯示部分源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity display1 is port( reset:in std_logic; -復(fù)位信號 q1 :in std_logic; -時鐘信號 m0 :in std_logic_vector(3 downt
15、o 0); -等待時間 m1 :in std_logic_vector(3 downto 0); k0 :in std_logic_vector(3 downto 0); -行駛公里 k1 :in std_logic_vector(3 downto 0); c0 :in std_logic_vector(3 downto 0); -計費值 c1 :in std_logic_vector(3 downto 0); c2 :in std_logic_vector(3 downto 0); c3 :in std_logic_vector(3 downto 0); sel :out std_logic
16、_vector(7 downto 0); -位選信號 show :out std_logic_vector(7 downto 0); -數(shù)碼管顯示輸出end display1;architecture behav of display1 istype state_type is(led1,led2,led3,led4,led5,led6,led7,led8);-狀態(tài)機定義signal pre_state,next_state:state_type; -信號定義 signal q :std_logic_vector(31 downto 0); signal q_reg :std_logic_ve
17、ctor(3 downto 0); signal sel_reg:std_logic_vector(7 downto 0); signal show_reg:std_logic_vector(6 downto 0);begin q=m1&m0&k1&k0&c3&c2&c1&c0;present_state_register: -狀態(tài)寄存器 process(q1) begin if reset=0 then pre_state=led1;elsif q1event and q1=1 then pre_state=next_state; end if; end process; process(r
18、eset,q1) -狀態(tài)機 begin if reset=0 then next_stateq_reg=q(3 downto 0) ;sel_reg=;next_stateq_reg=q(7 downto 4);sel_reg=;next_stateq_reg=q(11 downto 8);sel_reg=;next_stateq_reg=q(15 downto 12);sel_reg=;next_stateq_reg=q(19 downto 16); sel_reg=;next_stateq_reg=q(23 downto 20); sel_reg=;next_stateq_reg=q(27 downto 24); sel_reg=;next_stateq_reg=q(31 downto 28); sel_reg=;next_stateq_reg=;sel_reg=;next_state=led1; -所有數(shù)碼管全滅 end case; end if; end process; with q_reg select -開始譯碼顯示 show_reg=when0000, when0001, when0010, wh
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)蒙古烏蘭察布市(2024年-2025年小學(xué)五年級語文)統(tǒng)編版能力評測(下學(xué)期)試卷及答案
- 內(nèi)蒙古烏蘭察布市(2024年-2025年小學(xué)五年級語文)人教版專題練習(xí)((上下)學(xué)期)試卷及答案
- 專題02 病句辨析與句子排序(考點串講)-七年級語文上學(xué)期期末考點大串講(統(tǒng)編版2024·五四學(xué)制)
- 歷史-2025屆江蘇省南通市高三11月期中考試卷和答案
- 店面工作規(guī)劃
- 分級護理制度與老年護理服務(wù)的整合
- 農(nóng)業(yè)生產(chǎn)設(shè)施建設(shè)合同
- 社區(qū)志愿者因病缺席跟蹤制度
- 石淋患者個性化護理方案
- 邢臺學(xué)院《通信電子線路》2021-2022學(xué)年期末試卷
- 大學(xué)生職業(yè)規(guī)劃大賽成長賽道
- 2024.11.9全國消防安全日全民消防生命至上消防科普課件
- 2024-2025學(xué)年六年級科學(xué)上冊第二單元《地球的運動》測試卷(教科版)
- 《ISO 55013-2024 資產(chǎn)管理-數(shù)據(jù)資產(chǎn)管理指南》解讀和實施指導(dǎo)材料(雷澤佳編制-2024)
- 國家開放大學(xué)《合同法》章節(jié)測試參考答案
- 人民民主是全過程民主
- 土木工程生涯發(fā)展展示
- 心理健康教育和家校協(xié)同育人工作匯報
- 機房驗收檢測報告
- 電力公司司徽、司歌、企業(yè)精神試行方案和電力公司安全倡議書匯編
- 《骨折的現(xiàn)場急救》ppt課件
評論
0/150
提交評論