版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 設計背景1</p><p> 1.2 QUARTUS II簡介1</p><p> 1.3 VHDL語言基礎2</p><p>
2、 2 出租車計費器總體設計結構2</p><p> 2.1 系統(tǒng)設計要求和目的2</p><p> 2.2.1 系統(tǒng)設計要求2</p><p> 2.2.1 系統(tǒng)設計目的2</p><p> 2.2 設計思路3</p><p> 2.3 系統(tǒng)總體結構3</p><
3、p> 2.4 出租車計費器系統(tǒng)工作流程圖4</p><p> 3 出租車計費器的實現(xiàn)5</p><p> 3.1 出租車計費器的頂層原理圖5</p><p> 3.2 系統(tǒng)各功能模塊的實現(xiàn)5</p><p> 3.2.1 計費模塊JIFEI5</p><p> 3.2.2 計量模
4、塊JILIANG6</p><p> 3.2.3 顯示控制模塊SELTIME7</p><p> 3.2.4 顯示模塊DELED7</p><p> 4 出租車計費器系統(tǒng)仿真及分析8</p><p> 4.1 計費系統(tǒng)的仿真8</p><p> 4.2 單元模塊的仿真及分析10</
5、p><p> 4.2.1 譯碼顯示模塊的仿真及分析10</p><p> 4.2.2 顯示控制模塊的仿真及分析12</p><p> 4.2.3 計量模塊的仿真及分析13</p><p> 4.2.4 計費模塊的仿真及分析13</p><p> 5 鎖定管腳及硬件實現(xiàn)14</p>
6、<p> 5.1 鎖定管腳圖14</p><p> 5.2 硬件實現(xiàn)14</p><p> 5.2.1 顯示結果的幾種情況15</p><p> 5.2.2 硬件實現(xiàn)總結16</p><p> 6 設計體會與總結17</p><p><b> 參考文獻18<
7、/b></p><p><b> 附 錄19</b></p><p> 1 JILIANG模塊的VHDL編程19</p><p> 2 JIFEI模塊的VHDL編程21</p><p> 3 SELTIME控制模塊的VHDL編程22</p><p> 4 DE
8、LED模塊的VHDL編程23</p><p><b> 1 緒論</b></p><p><b> 1.1 設計背景</b></p><p> 隨著我國社會經(jīng)濟的全面發(fā)展,各大中小城市的出租車營運事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普通的交通工具。于是,出租車行業(yè)以低價高質的服務給人們帶來了出行的享
9、受。但是總存在著買賣糾紛困擾著行業(yè)的發(fā)展。而在出租車行業(yè)中解決這一矛盾的最好方法就是改良計價器。汽車計價器是乘客與司機雙方的交易準則,它是出租車行業(yè)發(fā)展的重要標志,是出租車中最重要的工具,它關系著交易雙方的利益。具有良好性能的計價器無論是對廣大出租車司機朋友還是乘客來說都是很必要的。因此,汽車計價器的研究也是具有一定意義的。出租車計費器是出租車營運收費的專用智能化儀表,是出租車市場規(guī)范化,標準化以及減少司機與乘客之間發(fā)生糾紛的重要設備。
10、一種功能完備,簡單易用,計量準確的出租車計費器是加強出租車行業(yè)管理,提高服務質量的必需品。本設計就是采用VHDL硬件描述語言作為設計手段,采用自己的設計思路,得到一種出租車計價系統(tǒng)的軟件結構,通過Quartus II 6.0軟件下進行仿真,證明所設計的電路系統(tǒng)完成了出租車計價的功能,各項指標符合設計要求,具有一定的實用性。</p><p> 1.2 QUARTUS II簡介</p><p&
11、gt; QUARTUS II 是Altera公司的綜合性CPLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整CPLD設計流程。QUARTUS II 支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。Altera QUARTUS II 作為一種可編程邏輯的設計環(huán)境
12、, 由于其強大的設計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設計者的歡迎。</p><p> 1.3 VHDL語言基礎</p><p> 一般而言,一個相對完整的VHDL語言程序至少應三個基本組成部分:①庫(Library)、程序包(Package)使用說明;②實體(Entity)說明;③實體對應的結構體(Architecture)說明。其中,庫、程序包使用說明用于打開(調(diào)用)本設計
13、實體將要用到的庫、程序包;實體說明用于描述該設計實體與外界的接口信號說明,是可視部分;結構體說明用于描述該設計實體內(nèi)部工作的邏輯關系,是不可視部分。在一個實體中,允許含有一個或多個結構體,而在每一個結構體中又可以含有一個或多個進程以及其他的語句。根據(jù)需要,實體還可以有配置說明語句。配置說明語句主要用于以層次化的方式對特定的設計實體進行元件例化,或是為實體選定某個特定的結構體。</p><p> 2 出租車計費
14、器總體設計結構</p><p> 2.1 系統(tǒng)設計要求和目的</p><p> 2.2.1 系統(tǒng)設計要求</p><p> 1.起步價為5.0元,起步公里為3公里;</p><p> 2.超過3公里,每公里按1元收費,也可每0.1公里按0.1元收費;</p><p> 3.等候時間累計1分鐘,按每分鐘0.
15、1元收費;</p><p> 4.用三個數(shù)碼管顯示總金額,最大值為99.9元;用三個數(shù)碼管顯示總里程,最大值99.9公里;用兩個數(shù)碼管顯示等待時間,最大值99分鐘。</p><p> 2.2.1 系統(tǒng)設計目的</p><p> 1.通過這次實驗設計使我們加深對EDA技術與數(shù)字系統(tǒng)設計相關理論和概念的理解,培養(yǎng)我們的理論聯(lián)系實際的能力,特別是實際動手能力。&l
16、t;/p><p> 2.學習使用QUARTUS II軟件設計。 </p><p> 3.根據(jù)原理圖學會用VHDL語言設計時序電路。</p><p> 4.學會繪制功能仿真波形圖。</p><p><b> 2.2 設計思路</b></p><p> 根據(jù)設計要求,電路具有計時、計
17、程、計費功能,用數(shù)碼管顯示行駛公里數(shù)、等待時間、收費金額,行車里程和等待時間的處理電路將汽車行駛的里程數(shù)、轉換成與之成正比的計費脈沖,然后由計費電路轉換成收費金額,實驗中以一個脈沖模擬汽車前進十米,則每100個脈沖表示1公里,3公里以后每0.1公里產(chǎn)生一個計費脈沖,一個1HZ的脈沖用來表示等待時間,60個脈沖代表1分鐘,1分鐘即60個脈沖產(chǎn)生一個等待計費脈沖,然后用計費電路對計費脈沖進行計費。</p><p>
18、 2.3 系統(tǒng)總體結構</p><p> 圖2-1 系統(tǒng)總體結構圖</p><p> 出租車計費器的組成如上圖所示,通過控制模塊以高低脈沖模擬出租汽車啟動、行駛、暫停,具有控制作用;通過控制模塊控制出租車的狀態(tài)來選擇出租車是計里程還是計等待時間,相應產(chǎn)生的時間計費脈沖信號和里程脈沖信號來計費,譯碼/動態(tài)掃描模塊將等待時間、路程與費用的數(shù)值譯碼后用動態(tài)掃描的方式驅動數(shù)碼管;數(shù)碼管顯示
19、模塊將里程數(shù)、等待時間和計費金額用數(shù)碼管顯示。</p><p> 2.4 出租車計費器系統(tǒng)工作流程圖</p><p> 圖2-2 出租車計費系統(tǒng)工作流程圖</p><p> 出租車載客后,啟動計費器,整個系統(tǒng)開始工作,進入初始化狀態(tài),即計程從0開始,計費從5.0元開始。再根據(jù)BREAK信號判斷行駛還是暫停。若是行駛狀態(tài),計費器開始進行里程計數(shù),當里程超過3
20、公里時,計費器開始累加,按每0.1公里收費0.1元計算,計程器則繼續(xù),否則計費器不變。若是暫停狀態(tài),計費器開始進行等候時間計數(shù),當?shù)群驎r間累計1分鐘,則每分鐘0.1元計費。最后將等候時間、里程、計費都顯示出來。</p><p> 3 出租車計費器的實現(xiàn)</p><p> 3.1 出租車計費器的頂層原理圖</p><p> 圖3-1 出租車計費器頂層原理圖
21、</p><p> 原理圖中輸入部分分別是CLK:秒脈沖信號,1個脈沖代表1秒,則60個脈沖表示1分鐘。CLK1:10米脈沖信號,1個脈沖代表10米,則10個脈沖表示100米,100個脈沖代表1公里。START:計程車開啟信號;DRIVE:計費器啟動信號;BREAK:等待信號,SEL為計數(shù)控制信號輸出端。</p><p> 3.2 系統(tǒng)各功能模塊的實現(xiàn)</p><
22、p> 3.2.1 計費模塊JIFEI</p><p> 計費(JIFEI)模塊也是本系統(tǒng)的核心,完成起步價計費,等待時間計費,里程計費功能。計費器啟動,顯示起步價5.0元,之后每來一個行駛里程計費脈沖或者等待時間計費脈沖,計費金額自動加0.1元。計費顯示用3位數(shù)碼管,所以計費最大值為99.9元。其中CH2表示費用的十位,CHI表示費用的個位,CH0表示費用的十分位。B為等待時間計費脈沖信號或里程計費脈
23、沖信號。</p><p> 圖3-2 JIFEI模塊圖</p><p> 3.2.2 計量模塊JILIANG</p><p> 圖3-3 JILIANG模塊圖</p><p> 本模塊是系統(tǒng)的核心模塊之一,能夠對外部的行駛距離脈沖、等待時間脈沖進行計數(shù)。因為行駛距離每脈沖代表10米,所以計滿100個數(shù)就輸出一個行駛距離計費脈沖,
24、因為3公里之內(nèi)屬于起步價,所以前3公里內(nèi)不輸出行駛距離計費脈沖,因為用3位數(shù)碼管來顯示行駛距離,其中兩位整數(shù),一位小數(shù),所以行駛距離最小分辨率為0.1公里,行駛距離脈沖每計10個數(shù),行駛距離輸出加0.1,行駛距離最大值為99.9公里。其中KM2為里程的十位,KM1為里程的個位,KM0為里程的十分位。等待時間脈沖頻率為1HZ,所以一個脈沖代表1秒,60個等待脈沖是1分鐘,輸出等待時間加1,等待時間滿1分鐘計一次費,所以對等待時間脈沖計數(shù),
25、計滿60個數(shù)就輸出一個等待計費脈沖。等待時間最大值為99分鐘。MIN1為等待時間的十位,MIN0為等待時間的個位。將行駛距離、等待時間送到SELTIME模塊,時間與里程計費脈沖送到計費模塊完成里程、等待時間的計費功能。B1為超過3公里后,每0.1公里產(chǎn)生的計費脈沖。B2為每等待一分鐘產(chǎn)生的計費脈沖。</p><p> 3.2.3 顯示控制模塊SELTIME</p><p> 圖3-4
26、 SELTIME模塊圖</p><p> SELTIME模塊起顯示控制作用,控制等待時間、行駛里程、費用在數(shù)碼管上的顯示位置。sel為計數(shù)控制信號輸出端,功能主要是利用其計數(shù)的八個狀態(tài),使daout在其每個狀態(tài)下選擇某一輸入數(shù)據(jù),進而將選擇的的數(shù)據(jù)送入到DELED模塊。dp為小數(shù)點脈沖控制信號,當該模塊輸出的值為里程的個位、費用的個位時,需要考慮小數(shù)點的存在,即此時dp=‘1’,在其他不需要小數(shù)點的情況下,d
27、p=‘0’,最后dp將信號輸出到DELED模塊。</p><p> 3.2.4 顯示模塊DELED</p><p> 圖3-5 DELED模塊圖</p><p> DELED模塊把送入的每個四位數(shù)據(jù)轉換為7段碼送出顯示,能夠使數(shù)碼管正常顯示送入的數(shù)據(jù)。其中DP為小數(shù)點輸入信號。</p><p> 4 出租車計費器系統(tǒng)仿真及分析&
28、lt;/p><p> 4.1 計費系統(tǒng)的仿真</p><p> 圖4-1 出租車啟動時計費系統(tǒng)功能仿真圖</p><p> 由圖4-1 可知,當出租車未啟動時,里程、等待時間、費用均為0。出租車剛啟動時,里程、等待時間為0,費用為出租車起步價5元。</p><p> 圖4-2 出租車等待時計費系統(tǒng)功能仿真圖</p>&
29、lt;p> 由圖4-2可知,當出租車在等待過程中,行駛里程16.2公里,等待時間為32分鐘時,出租車的費用為:5+(16.2-3)×1+32×0.1=21.4元,與仿真結果一致。</p><p> 圖4-3 出租車行駛時計費系統(tǒng)功能仿真圖</p><p> 由圖4-3可知,當出租車行駛到66.6千米,等待時間60分鐘時,由仿真結果可得出費用為74.6元;根
30、據(jù)設計要求計算可得費用為:5+(66.6-3)×1+60×0.1=74.6元。仿真結果與計算值一致,驗證了設計的正確性。</p><p> 圖4-4 出租車停車時計費系統(tǒng)功能仿真圖</p><p> 當出租車停車時,出租車上的時間、里程和費用清零,為下次計費的開始做準備。</p><p> 4.2 單元模塊的仿真及分析</p>
31、;<p> 4.2.1 譯碼顯示模塊的仿真及分析</p><p> 圖4-5 譯碼顯示模塊的功能仿真圖</p><p> 圖4-5為譯碼顯示模塊的功能仿真波形圖,DP、S為信號輸入端,也是顯示控制模塊的信號輸出端口,ABCDEFGH八個端口為八位二進制的輸出端口。假設DOUT=“HGFEDCBA”,由上圖可以看出:</p><p><b
32、> 1. DP=0時:</b></p><p> 當S(3 downto 0)=”0000”,則DOUT=”00111111”;</p><p> 當S(3 downto 0)=”0001”,則DOUT=”00000110”;</p><p> 當S(3 downto 0)=”0010”,則DOUT=”01011011”;</p>
33、;<p> 當S(3 downto 0)=”0011”,則DOUT=”01001111”;</p><p> 當S(3 downto 0)=”0100”,則DOUT=”01100110”;</p><p> 當S(3 downto 0)=”0101”,則DOUT=”01101101”;</p><p> 當S(3 downto 0)=”0110
34、”,則DOUT=”01111101”;</p><p> 當S(3 downto 0)=”0111”,則DOUT=”00000111”;</p><p> 當S(3 downto 0)=”1000”,則DOUT=”01111111”;</p><p> 當S(3 downto 0)=”1001”,則DOUT=”01101111”;</p><
35、;p> 當S(3 downto 0)等于上述值以外的值時,則DOUT=”00000000”。</p><p><b> 2. DP=1時:</b></p><p> 當S(3 downto 0)=”0000”,則DOUT=”10111111”;</p><p> 當S(3 downto 0)=”0001”,則DOUT=”10000
36、110”;</p><p> 當S(3 downto 0)=”0010”,則DOUT=”11011011”;</p><p> 當S(3 downto 0)=”0011”,則DOUT=”11001111”;</p><p> 當S(3 downto 0)=”0100”,則DOUT=”11100110”;</p><p> 當S(3 d
37、ownto 0)=”0101”,則DOUT=”11101101”;</p><p> 當S(3 downto 0)=”0110”,則DOUT=”11111101”;</p><p> 當S(3 downto 0)=”0111”,則DOUT=”10000111”;</p><p> 當S(3 downto 0)=”1000”,則DOUT=”11111111”;&
38、lt;/p><p> 當S(3 downto 0)=”1001”,則DOUT=”11101111”;</p><p> 當S(3 downto 0)等于上述值以外的值時,則DOUT=”10000000”。</p><p> 4.2.2 顯示控制模塊的仿真及分析</p><p> 圖4-6 顯示控制模塊的功能仿真圖</p>
39、<p> 圖4-6為顯示控制模塊功能仿真圖,其中clk為時鐘脈沖輸入端,sel為計數(shù)控制信號輸出端,daout為sel所控制狀態(tài)下的輸出到數(shù)碼管的位選信號,dp為小數(shù)點控制輸出信號??梢钥闯觯敃r鐘沿上升時刻到來時,計數(shù)器的輸出sel就自動加1,當計數(shù)器輸出端加到“111”時,再來一個脈沖上升沿,則計數(shù)的輸出端sel變?yōu)椤?00”,該顯示控制模塊的功能主要是利用其計數(shù)的八個狀態(tài),進而去輪流控制數(shù)碼管的位選信號。由圖4-6可
40、知:當sel=“000”時,則daout=CH0;當sel=“001”時,daout=CH1;當sel=“010”時,daout=CH2;當sel=“011”時,daout=KM0;當sel=“100”時,daout=KM1;當sel=“101”時,daout=KM2;當sel=“110”時,daout=MIN0;當sel=“111”時,daout=MIN1。由于KM1、CH1表示里程的個位和費用的個位,其后都存在小數(shù),故在設計中當顯示
41、KM1、CH1時須加入小數(shù)點,此時dp=‘1’,在其他沒有小數(shù)點的情況時dp=‘0’。</p><p> 4.2.3 計量模塊的仿真及分析</p><p> 圖4-7 計量模塊的功能仿真圖</p><p> 圖4-7為計量模塊的功能仿真圖,START信號為高電平時(即出租車啟動)。當DRIVE為高電平且BREAK為低電平時,出租車為行駛狀態(tài),此時里程計數(shù)模
42、塊開始計數(shù),每經(jīng)過10個CLK1脈沖信號,里程加0.1公里,當里程計數(shù)大于3公里時,每計0.1公里產(chǎn)生1個B1脈沖信號。當DRIVE為高電平且BREAK為高電平時,出租車為暫停狀態(tài),此時等待時間計數(shù)模塊開始計數(shù),每經(jīng)過60個CLK脈沖信號,時間加1分鐘,每計1分鐘產(chǎn)生一個B2脈沖信號。B1和B2分別為里程計費脈沖和等待時間計費脈沖。</p><p> 4.2.4 計費模塊的仿真及分析</p>&
43、lt;p> 圖4-8 計費模塊的功能仿真圖</p><p> 圖4-8為計費模塊的功能仿真圖當START處于高電平且DRIVE處于高電平時,每送入一個計費脈沖且計費脈沖處于上升沿時,CH0自動加1(即每送入一個計費脈沖加0.1元)。CH0、CH1、CH2為十進制計數(shù)。CH2表示費用的十位,CH1表示費用的個位,CH0表示費用的十分位,計費的最大值為99.9元。</p><p>
44、 5 鎖定管腳及硬件實現(xiàn)</p><p> 5.1 鎖定管腳圖</p><p> 在驗證出租車計費器系統(tǒng)的功能之前,需要清楚實驗箱與各個信號之間的對應關系,參照資料得出本設計中各引腳的對應情況如下:</p><p> 圖5-1 頂層原理圖</p><p><b> 5.2 硬件實現(xiàn)</b></p&
45、gt;<p> 通過硬件下載,該電路可以完成硬件實現(xiàn),芯片管腳定義可以直接用編輯.pin文件。完成管腳定義后選擇器件,編譯后生成.sof文件。選擇.sof文件進行下載。</p><p> 下載完成后,將第一全局時鐘CLK1的跳線器接1Hz(作為秒脈沖信號),將第二全局時鐘CLK2的跳線器接1Hz(作為十米脈沖信號),將第三全局時鐘CLK3的跳線器接32768Hz,用撥位開關模擬控制出租車的啟動、
46、行駛、暫停。觀察數(shù)碼管上數(shù)據(jù)的變化是否符合設計標準。在試驗箱上八個數(shù)碼管從左至右分別顯示的是:等待時間的十位、等待時間的個位、里程的十位、里程的個位、里程的十分位、費用的十位、費用的個位、費用的十分位。</p><p> 5.2.1 顯示結果的幾種情況</p><p> 圖5-2 驗證結果1</p><p> 圖5-2表示出租車等待了1分鐘,行駛了3.9公
47、里,即時車費為6.0元。根據(jù)設計要求計算所得費用為:5元+(3.9-3)公里×1元/公里+1分鐘×0.1元/分鐘=6.0元,計算結果與試驗箱上所得顯示結果相同。</p><p> 圖5-3 驗證結果2</p><p> 圖5-3表示出租車等待了3分鐘,行駛了6.8公里,即時車費為9.1元。根據(jù)設計要求計算所得費用為:5元+(6.8-3)公里×1元/公里+
48、3分鐘×0.1元/分鐘=9.1元,計算結果與試驗箱上所得顯示結果相同。</p><p> 在試驗箱驗證過程中,我們可以看到,八位數(shù)碼管的右三位顯示起步價05.0,中間三個數(shù)碼管在以0.1為步長進行加法顯示行駛里程,當行駛里程超過3公里之后,每0.1公里計費金額加0.1元,當我們按下等待暫停鍵,每分鐘左邊兩個數(shù)碼管加1,其顯示的等待時間,當?shù)却龝r間到1分鐘時,計費金額加0.1元,由此我們可以判斷,系統(tǒng)設
49、計符合要求。</p><p> 5.2.2 硬件實現(xiàn)總結</p><p> 通過對每一模塊的仿真和下載,可以實現(xiàn)各個模塊的邏輯功能,驗證了各個模塊的正確性。在出租車計費系統(tǒng)的4個模塊中,重點在于計量模塊(JILIANG),計費模塊(JIFEI),顯示控制模塊(SELTIME),譯碼顯示模塊(DELED)。JILIANG模塊主要有汽車的開始、運行、暫停,JILIANG模塊主要記錄出租車
50、的行駛里程和等待時間,并將等待時間計費脈沖和行駛里程計費脈沖送入JIFEI模塊;JIFEI模塊主要是完成起步價計費、等待時間計費、行駛里程計費,并完成總費用;SELTIME模塊起顯示控制作用,控制等待時間、行駛里程、費用在八個數(shù)碼管上的位置。DELED模塊是把送入的每個四位數(shù)據(jù)轉換為7段碼,從而能在數(shù)碼管上正確的顯示。這四個模塊的組合成完整的出租車系統(tǒng),在設計過程中還需要改進的是控制出租車計費系統(tǒng)的控制功能。 </p&g
51、t;<p> 出租車計費器系統(tǒng)的設計已全部完成,能按預期的效果進行模擬汽車開始、啟動、暫停、停止等功能,由數(shù)碼管顯示出租車等待時間,行駛里程,費用。車暫等待時停止行駛里程計費,車費僅由等待時間計費;出租車正常行駛時,僅根據(jù)里程收費方式。若停止則車費清零,等待下一次計費的開始。出租車計費系統(tǒng)的設計中體現(xiàn)了VHDL覆蓋面廣,描述能力強,是一個多層次的硬件描述語言本設計在實用方面具有一定的價值。 </p>
52、<p> 該計費器實現(xiàn)了按預置參數(shù)自動計費(最大計費金額為99.9元)、自動計程(最大計程公里數(shù)為99.9公里)等功能;能夠實現(xiàn)起步價、每公里收費、等待時間計費的參數(shù)預置(如:起步價5.0元;3公里后1元每公里;等待時間0.1元每分鐘),且預置參數(shù)可調(diào)范圍廣。由于采用CPLD大規(guī)??删幊踢壿嬈骷?,整機功耗小、抗干擾能力強、系統(tǒng)穩(wěn)定、工作可靠、升級方便。</p><p> 6 設計體會與總結&l
53、t;/p><p> 通過這次緊張而又充實的EDA課程設計,我感受到了VHDL語言和普通軟件語言之間的區(qū)別,也能夠更加熟練地運用VHDL語言進行邏輯電路的設計了,受益匪淺。我們所做的課題是出租車計費器的設計。老師給了我們課程設計題目,在這半個月的實驗操作中,不斷的完善自己的設計要求,將自己的想法融入到實驗的程序中去。最終通過仿真達到了自己預想的效果。有種先苦后甜的成就感。</p><p>
54、同時在本次試驗中,我們熟練的掌握了Quartus II軟件的使用。學會了如何把自己所設計的程序,通過軟件用波形仿真出來,再通過試驗箱仿真出來。</p><p> 在這次課程設計過程中,要感謝陳老師在課程設計上給予我的幫助,提供給我的支持與建議,特別是幫助我解決了我半個月來一直遇到的運行程序警告多的問題,這是我能順利完成這次報告的主要原因,讓我能把課程設計做得更加完善。在此期間,我不僅學到了許多新知識,而且也開闊
55、了視野,提高了自己的設計能力。其次,我要感謝幫助過我的同學們,他們也為我解決了不少難題。這些東西是無法再平時上課的過程中學到的,實踐出真知,只有在實驗中我們才能更好的學到東西,不用紙上談兵,做無用功。</p><p><b> 參考文獻</b></p><p> [1] 徐飛.EDA技術與實踐[M].北京:清華大學出版社,2011.</p><
56、p> [2] 王行,李衍.EDA技術入門與提高[M].西安:西安電子科技大學出版社,2005.</p><p> [3] 劉昌華.數(shù)字邏輯EDA設計與實踐[M].北京:國防工業(yè)出版社,2011.</p><p> [4] 李蓉.基于VHDL語言的出租車自動計費器的設計[J].科技風,2008,24:33.</p><p><b> 附
57、錄</b></p><p> 1 JILIANG模塊的VHDL編程</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> USE I
58、EEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY JILIANG IS</p><p> PORT(CLK,CLK1 : IN STD_LOGIC;</p><p> START : IN STD_LOGIC;</p><p> DRIVE : IN STD_LOGIC;</p&
59、gt;<p> BREAK : IN STD_LOGIC;</p><p> B1,B2 : OUT STD_LOGIC;</p><p> KM2,KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> MIN1,MIN0 : OUT STD_LOGIC_VECTOR(3 DO
60、WNTO 0));</p><p> END JILIANG;</p><p> ARCHITECTURE BEHAVE OF JILIANG IS </p><p> SIGNAL R1:INTEGER RANGE 0 TO 9; </p><p> SIGNAL K:STD_LOGIC_VECTOR (7
61、 DOWNTO 0);</p><p> SIGNAL K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL W1:INTEGER RANGE 0 TO 59; </p><p> SIGNAL M1:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p&g
62、t; SIGNAL M0:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN </b></p><p> RUN:PROCESS(CLK1,DRIVE,BREAK,K0,K1,K2)</p><p><b> BEGIN</b></p><p>
63、 IF START='1' THEN</p><p> IF DRIVE='0' THEN K0<="0000";K1<="0000";K2<="0000";R1<=0;</p><p> ELSIF CLK1'EVENT AND CLK1='1
64、39; THEN </p><p> IF DRIVE='1'AND BREAK='0' THEN </p><p> IF R1=9 THEN R1<=0;</p><p> IF K0="1001" THEN K0<="0000";k1<=k1+1;</p>
65、;<p> IF K1="1001" THEN K1<="0000";k2<=k2+1;</p><p> IF K2="1001" THEN K2<="0000";</p><p> ELSE K2<=K2+1; </p><p><b
66、> END IF;</b></p><p> ELSE K1<=K1+1;</p><p><b> END IF;</b></p><p> ELSE K0<=K0+1;</p><p><b> END IF;</b></p><p&g
67、t; ELSE R1<=R1+1;B1<='0';</p><p><b> END IF;</b></p><p><b> K<=K2&K1;</b></p><p> IF K>"00000010" THEN </p><
68、p> IF R1<9 THEN R1<=R1+1;B1<='0';</p><p> ELSE R1<=0; B1<='1';</p><p><b> END IF;</b></p><p><b> END IF;</b></p>
69、<p><b> END IF;</b></p><p><b> END IF;</b></p><p> ELSE K0<="0000";K1<="0000";K2<="0000";</p><p><b>
70、END IF;</b></p><p> KM0<=K0;KM1<=K1;KM2<=K2;</p><p> END PROCESS;</p><p> PAUSE:PROCESS(CLK,DRIVE,BREAK,M0,M1) </p><p><b> BEGIN</b>
71、</p><p> IF START='1' THEN</p><p> IF DRIVE='0' THEN M0<="0000";M1<="0000";W1<=0;</p><p> ELSIF CLK'EVENT AND CLK='1' T
72、HEN</p><p> IF DRIVE='1' AND BREAK='1'THEN</p><p> IF W1=59 THEN W1<=0;B2<='1';</p><p> IF M0="1001"THEN M0<="0000"; M1<=M
73、1+1;</p><p> IF M1="1001"THEN M1<="0000";</p><p> ELSE M1<=M1+1;</p><p><b> END IF;</b></p><p> ELSE M0<=M0+1;</p>&
74、lt;p><b> END IF;</b></p><p> ELSE W1<=W1+1;B2<='0';</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b&
75、gt; END IF;</b></p><p> ELSE M0<="0000";M1<="0000";</p><p><b> END IF;</b></p><p><b> MIN0<=M0;</b></p><p&
76、gt;<b> MIN1<=M1;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE ;</p><p> 2 JIFEI模塊的VHDL編程</p><p> LIBRARY IEEE;</p><p> USE IEEE.
77、STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY JIFEI IS</p><p> PORT(B :IN STD_LOGIC;</p>
78、;<p> START:IN STD_LOGIC;</p><p> DRIVE:IN STD_LOGIC;</p><p> CH2,CH1,CH0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END JIFEI;</p><p> ARCHITECTURE BEHAVE
79、 OF JIFEI IS</p><p> SIGNAL C2,C1,C0:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(B,DRIVE,C0,C1,C2) </p><p><b> BEGIN </b
80、></p><p> IF DRIVE='0' THEN C0<="0000";C1<="0101";C2<="0000";</p><p> ELSIF DRIVE='1' THEN</p><p> IF B'EVENT AND B=
81、'1' THEN </p><p> IF C0="1001" THEN C0<="0000";</p><p> IF C1="1001"THEN C1<="0000"; </p><p> IF C2="1001"THEN C2&
82、lt;="0000";</p><p> ELSE C2<=C2+1;</p><p><b> END IF;</b></p><p> ELSE C1<=C1+1;</p><p><b> END IF;</b></p><p>
83、 ELSE C0<=C0+1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> ELSE C0<="0000";C
84、1<="0000";C2<="0000";</p><p><b> END IF;</b></p><p> CH0<=C0;CH1<=C1;CH2<=C2;</p><p> END PROCESS;</p><p><b> E
85、ND;</b></p><p> 3 SELTIME控制模塊的VHDL編程</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
86、 entity seltime is</p><p> port( clk : in std_logic;</p><p> CH2,CH1,CH0 : in std_logic_vector(3 downto 0);</p><p> KM2,KM1,KM0 : in std_logic_vector(3 downto 0);</p&
87、gt;<p> MIN1,MIN0 : in std_logic_vector(3 downto 0);</p><p> dp : OUT STD_LOGIC;</p><p> daout : out std_logic_vector(3 downto 0);</p><p> sel
88、 : out std_logic_vector(2 downto 0));</p><p> end seltime;</p><p> architecture behav of seltime is </p><p> signal sec : std_logic_vector(2 downto 0);</p><p>&
89、lt;b> begin </b></p><p> process(clk)</p><p><b> begin</b></p><p> if(clk'event and clk='1') then</p><p> if(sec="111")
90、then</p><p> sec<="000";</p><p><b> else</b></p><p> sec<=sec+1;</p><p><b> end if;</b></p><p><b> end i
91、f;</b></p><p> end process;</p><p> process(sec,MIN1,MIN0,CH2,CH1,CH0,KM2,KM1,KM0)</p><p><b> begin </b></p><p> case sec is</p><p>
92、 when "000"=>daout<=CH0 ( 3 downto 0);dp<='0';</p><p> when "001"=>daout<=CH1 ( 3 downto 0);dp<='1';</p><p> when "010"=>daou
93、t<=CH2 ( 3 downto 0);dp<='0';</p><p> when "011"=>daout<=KM0 ( 3 downto 0);dp<='0';</p><p> when "100"=>daout<=KM1 ( 3 downto 0);dp<
94、='1';</p><p> when "101"=>daout<=KM2 ( 3 downto 0);dp<='0';</p><p> when "110"=>daout<=MIN0( 3 downto 0);dp<='0';</p><p
95、> when "111"=>daout<=MIN1( 3 downto 0);dp<='0';</p><p> when others=>daout<="XXXX";</p><p><b> end case;</b></p><p> en
96、d process;</p><p><b> sel<=sec;</b></p><p> end behav;</p><p> 4 DELED模塊的VHDL編程</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.
97、ALL;</p><p> ENTITY DELED IS</p><p> PORT( DP: IN STD_LOGIC; </p><p> S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> A,B,C,D,E,F,G,H: OUT STD_LOGIC);</p>&l
98、t;p> END DELED;</p><p> ARCHITECTURE BEHAV OF DELED IS</p><p> SIGNAL DATA : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL DOUT : STD_LOGIC_VECTOR(7 DOWNTO 0);</p><
99、;p><b> BEGIN</b></p><p><b> DATA<=S;</b></p><p> PROCESS(DATA,DP)</p><p><b> BEGIN</b></p><p> IF DP='0' THEN<
100、/p><p> CASE DATA IS </p><p> WHEN "0000"=>DOUT<="00111111";</p><p> WHEN "0001"=>DOUT<="00000110";</p><p> WHEN &q
101、uot;0010"=>DOUT<="01011011";</p><p> WHEN "0011"=>DOUT<="01001111";</p><p> WHEN "0100"=>DOUT<="01100110";</p>&
102、lt;p> WHEN "0101"=>DOUT<="01101101";</p><p> WHEN "0110"=>DOUT<="01111101";</p><p> WHEN "0111"=>DOUT<="00000111&qu
103、ot;;</p><p> WHEN "1000"=>DOUT<="01111111";</p><p> WHEN "1001"=>DOUT<="01101111";</p><p> WHEN OTHERS=>DOUT<="0000
104、0000";</p><p><b> END CASE;</b></p><p><b> ELSE</b></p><p> CASE DATA IS </p><p> WHEN "0000"=>DOUT<="10111111&quo
105、t;;</p><p> WHEN "0001"=>DOUT<="10000110";</p><p> WHEN "0010"=>DOUT<="11011011";</p><p> WHEN "0011"=>DOUT<=&
106、quot;11001111";</p><p> WHEN "0100"=>DOUT<="11100110";</p><p> WHEN "0101"=>DOUT<="11101101";</p><p> WHEN "0110&quo
107、t;=>DOUT<="11111101";</p><p> WHEN "0111"=>DOUT<="10000111";</p><p> WHEN "1000"=>DOUT<="11111111";</p><p> WH
108、EN "1001"=>DOUT<="11101111";</p><p> WHEN OTHERS=>DOUT<="10000000";</p><p><b> END CASE;</b></p><p><b> END IF;</b&
109、gt;</p><p> END PROCESS;</p><p> H<=DOUT(7);G<=DOUT(6);F<=DOUT(5);E<=DOUT(4);</p><p> D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);</p><p> E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車自動計費器課程設計
- 出租車自動計費器設計課程設計
- 出租車自動計費器設計課程設計
- eda課程設計--出租車自動計費器
- 數(shù)電課程設計-出租車自動計費器
- 出租車自動計費器課程設計報告資料
- 數(shù)電課程設計-出租車自動計費器
- eda課程設計出租車計費器
- eda課程設計--出租車計費器
- 出租車計費器課程設計報告
- eda課程設計---出租車計費器設計
- eda 課程設計--出租車計費器設計
- eda課程設計--- 出租車計費器
- 出租車計費器課程設計報告
- eda課程設計——出租車計費器設計
- 數(shù)字電路課程設計---出租車自動計費器
- 出租車計費器數(shù)字電子課程設計
- eda課程設計--出租車計費器的設計
- eda課程設計--出租車計費器的設計
- eda課程設計---出租車計費器系統(tǒng)
評論
0/150
提交評論