freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga出租車計(jì)價(jià)器設(shè)計(jì)(編輯修改稿)

2024-12-23 21:56 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 大型設(shè)計(jì),并對(duì)所做設(shè)計(jì)的邏輯電路進(jìn)行嚴(yán)格的驗(yàn)證 [5]。 Verilog HDL 行為描述語言作為一種結(jié)構(gòu)化和過程性的語言,其語法結(jié)構(gòu)非常適合于算法級(jí)和 RTL級(jí)的模型設(shè)計(jì)。這種行為描述語言具有以下功能: 1) 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu); 2) 用延遲表達(dá)式或事件表達(dá)式來明確地控制過程的啟動(dòng)時(shí)間; 3) 通過命名的事件來觸發(fā)其它過程里的激活行為或停止行為; 4) 提供了條件如 ifelse,case 等循環(huán)程序結(jié) 構(gòu); 5) 提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)( task)程序結(jié)構(gòu); 6) 提供了可定義新的操作符的函數(shù)結(jié)構(gòu) (function)。 7) 提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符 [6]; QuartusⅡ開發(fā)環(huán)境 QuartusⅡ是 Altera 公司的 CPLD/FPGA 設(shè)計(jì)工具軟件,適合單芯片可編程系統(tǒng)( SOPC)的最全面的設(shè)計(jì)環(huán)境。它能夠?qū)崿F(xiàn)從設(shè)計(jì)輸入到下載的所有功能。 QuartusⅡ軟件包是 MAX+plusⅡ的升級(jí)版本, Altera 公司的第四代開發(fā)軟件 ,支持原理圖、 VHDL、 VerilogHDL 以及 AHDL( Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。 QuartusⅡ提供了方便的設(shè)計(jì)輸入方式、快速的編譯和直接易懂的器件編程。 QuartusⅡ軟件包的編程器是系統(tǒng)的核心,提供功能強(qiáng)大的設(shè)計(jì)處理,設(shè)計(jì)者可以添加特定的約束條件來提高芯片的利用率 [7]。 QuartusⅡ還支持 Altera 的 IP核,使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。 對(duì)第三方 EDA 工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三放 EDA工具。 8 4 設(shè)計(jì)與仿真驗(yàn)證 該出租車計(jì)價(jià)器要求實(shí)現(xiàn)的功能: 1) 出租車起步價(jià)為 元。 2)行程 2 公里,每公里加收費(fèi)用 1元 。等待累計(jì)時(shí)間 2 分鐘,每 2分鐘加收費(fèi)用 1 元。 3)能顯示行駛公里數(shù)和最后的總費(fèi)用。 4)能通過修改程序來對(duì)計(jì)費(fèi)要求實(shí)現(xiàn)改變。 用 Verilog HDL 語言設(shè)計(jì)符合上述功能要求的出租車計(jì)費(fèi)器,并用層次化設(shè)計(jì)方法設(shè)計(jì)該電路,各計(jì)數(shù)器的計(jì)數(shù)狀態(tài)用功能仿真的方法驗(yàn)證,并通過有關(guān)波形和硬件下載確認(rèn)電路 設(shè)計(jì)是否正確。 分頻模塊 計(jì) 程分頻模塊 圖 41 計(jì) 程分頻模塊 本設(shè)計(jì)為了模擬仿真假設(shè)車輪 每轉(zhuǎn)一圈為 1 米, 轉(zhuǎn)動(dòng) 100 圈才產(chǎn)生一個(gè)脈沖,即一個(gè)脈沖代表 100米,則經(jīng)過 2020000分頻器后是每行駛 100米送一個(gè)脈沖到里 程計(jì)算模塊。倆個(gè) INPUT分別輸入的是復(fù)位信號(hào) reset和 20MHz的時(shí)鐘信號(hào),輸出 OUTPUT是 10Hz信號(hào),實(shí)現(xiàn)了將 20MHz 信號(hào)分成 10Hz 信號(hào),路程分頻模塊如圖 41 所示。 部分代碼 : …… always@(posedge clk_20M) begin if(!reset) begin clk_10=0。 counter = 0。 9 end else begin if(counter==1000000) begin counter=0。 clk_10= ~ clk_10。 end else counter = counter + 1。 end end 輸入是復(fù)位信號(hào) reset,時(shí)鐘信號(hào) clk_20M,輸出是時(shí)鐘信號(hào) clk_10。將 20M 的脈沖信號(hào)進(jìn)行 2020000 分頻,在 clk_20M 時(shí)鐘信號(hào)的上升沿, counter 進(jìn)行加 1 計(jì)數(shù),在counter=1000000 時(shí), counter 進(jìn)行取反, clk_10 輸出的是 10Hz 的時(shí)鐘信號(hào)。 計(jì)時(shí)分頻模塊和計(jì)費(fèi)分頻模塊 圖 42 計(jì)時(shí)分頻模塊和計(jì)費(fèi)分頻模塊 在等待 時(shí)間超過 2 分鐘后,每經(jīng)過 2 分鐘加收費(fèi)用 1 元,所以給計(jì)時(shí)模塊輸入的是1Hz的秒脈沖。當(dāng)汽車行駛時(shí),路程的計(jì)費(fèi)是按照 1 公里加收 1元,所以給計(jì)費(fèi)模塊在按照里程計(jì)費(fèi)時(shí)輸入的是路程分頻模塊的十分頻時(shí)鐘信號(hào),即 1Hz 脈沖信號(hào),如圖 42所示。 數(shù)碼管動(dòng)態(tài)顯示分頻模塊 10 圖 43 數(shù)碼管動(dòng)態(tài)顯示分頻模塊 由于用 8個(gè)數(shù)碼管進(jìn)行顯示,輸入的時(shí)鐘信號(hào)是 20MHz,將 20MHz 的時(shí)鐘信號(hào)進(jìn)行25000 分頻,分頻成 800Hz,數(shù)碼管才可以進(jìn)行動(dòng)態(tài)顯示,數(shù)碼管動(dòng)態(tài)顯示分頻模塊如圖43所示。 數(shù)碼管動(dòng)態(tài)顯示分頻模塊仿真 圖 44 數(shù)碼管動(dòng)態(tài)顯示分頻模塊 從波形圖 44可以看出在時(shí)鐘 信號(hào) clk_20M 的控制下 ,進(jìn)行 25000 分頻,輸出 800Hz的時(shí)鐘信號(hào)。 計(jì)程模塊 計(jì)程模塊電路 此模塊的功能是計(jì)算出租車行駛的路程。在出租車啟動(dòng)并行駛的過程中 (即復(fù)位 /啟動(dòng)信號(hào) reset 為 1,行駛 /停止信號(hào) start 為 1),當(dāng)時(shí)鐘 clk_10 是上升沿的時(shí)候,系統(tǒng)即對(duì)路程計(jì)數(shù)器 distance 的里程計(jì)數(shù)器進(jìn)行加計(jì)數(shù),當(dāng)路程超過 2公里時(shí),系統(tǒng)將輸出標(biāo)志正脈沖 distance_enable。其模塊如圖 44 所示。 11 圖 45 計(jì)程模塊電路 部分計(jì)程代碼如下: …… always@(posedge clk_10 or negedge reset)//異步復(fù)位 begin if(!reset)//低電平復(fù)位 begin distance=1639。d0。 end else if(start)// start 高電平有效 begin if(distance[3:0]==9)//判斷 distance 的低四位計(jì)到了 9 沒有 begin distance[3:0]=439。d0。//計(jì)到 9 清零 ...... else distance[3:0]=distance[3:0]+139。d1。// distance 的低四位沒有計(jì)到 9 的時(shí)候加一 end end //*產(chǎn)生 distance_enable 信號(hào) *// always@(posedge clk_10 or negedge reset) ...... else if(distance=1639。d20)// 大于 2 公里的時(shí)候 begin distance_enable=139。d1。//輸出 distance_enable 信號(hào) end end 輸入是時(shí)鐘信號(hào) clk_10,汽車行駛信號(hào) start 和 復(fù)位信號(hào) reset, 輸出是里程distance 和里程計(jì)費(fèi)使能信號(hào) distance_enable,當(dāng)脈沖信號(hào) 10Hz 上升沿到來時(shí),12 distance 開始進(jìn)行加 1 計(jì)數(shù),最小單位是米,當(dāng) distance 大于等于 20,即 2公里時(shí),輸出 distance_enable 信號(hào)。 計(jì)程模塊仿真 圖 46 計(jì)程模塊仿真 從波形圖 45 可以看出在時(shí)鐘的控制下,當(dāng) reset=0 時(shí),復(fù)位,里程計(jì)數(shù)歸 0;當(dāng)reset=1 且 start=1 的時(shí)候 distance 開始計(jì)數(shù),當(dāng)計(jì)到大于 2 的時(shí)候輸出了distance_enable=1。準(zhǔn)備對(duì)第 2 公里以后的脈沖進(jìn)行加計(jì)費(fèi)。 計(jì)時(shí)模塊 計(jì)時(shí)模塊電路 此模塊用于模擬出租車停車等待的時(shí)間。在出租車行進(jìn)中,如果車輛停止等待,計(jì)數(shù)器則在 1Hz 信號(hào) clk_1的上升沿進(jìn)行加計(jì)數(shù),每 60 次產(chǎn)生進(jìn)位脈沖使分鐘計(jì)數(shù)器位進(jìn)行加計(jì)數(shù),當(dāng)累計(jì)等待時(shí)間超過 2(不包括 2 分鐘)分鐘時(shí),輸出標(biāo)志 time_enable 正脈沖信號(hào)。其模塊如圖 46所示。 圖 47 計(jì)時(shí)模塊電路 13 部分計(jì)時(shí)代碼如下: …… always@(posedge clk_1 or negedge reset)//異步復(fù)位 if(!reset) begin time_enable=0。 j=0。 end else if(!te) begin if(j==119) begin j=0。 time_enable=1。 end else begin j=j+1。 time_enable=0。 end end 輸入是時(shí)鐘信號(hào) clk_1,復(fù)位信號(hào) reset 和汽車行駛信號(hào) te, 輸出是時(shí)間計(jì)費(fèi)使能信號(hào) time_enable。當(dāng) te=0(te 引腳與 start 輸入連接 ),在輸入脈沖信號(hào) 1Hz 的上升沿, j進(jìn)行加 1 計(jì)數(shù),當(dāng)計(jì)到 119時(shí),即 2分鐘, time_enable 輸出一個(gè)正脈沖 。 計(jì)時(shí)模塊仿真 14 圖 48 計(jì)時(shí)模塊仿真 從波形圖 47可以看出在 clk_1的控制下當(dāng) reset=1且 te=0的時(shí)候時(shí)間計(jì)數(shù),當(dāng)時(shí)間大于 2分鐘的時(shí)候, time_enable輸出一個(gè)正脈沖,成為計(jì)費(fèi)模塊中等待時(shí)間計(jì)費(fèi)的脈沖信號(hào)。 計(jì)費(fèi)模塊 計(jì)費(fèi)模塊電路 費(fèi)用計(jì)數(shù)器模塊用于出租車啟動(dòng)后,根據(jù)行駛路程和等待時(shí)間計(jì)算費(fèi)用。當(dāng)出租車停車時(shí),時(shí)鐘 reset用于將費(fèi)用計(jì)數(shù)器復(fù)位為起步價(jià) 8元;當(dāng)車處于行駛狀態(tài)時(shí),若滿 2公里后路程每滿 1公里,費(fèi)用計(jì)數(shù)器加 1元;當(dāng)出租車 處于停止等待狀態(tài)且時(shí)鐘滿 2分鐘時(shí),時(shí)間每滿 2分鐘,費(fèi)用計(jì)數(shù)器加 1元。其模塊圖如 48所示。 圖 49 計(jì)費(fèi)模塊電路 部分等待時(shí)間計(jì)費(fèi)代碼如下 : …… always@( negedge reset or posedge clk )//異步 復(fù)位 begin if(!reset) //低電平有效 begin fee=1639。d0。 end else if(fee[3:0]==439。d9) //費(fèi)用的低四位是不是計(jì)到了 9 begin 15 fee[3:0]=439。d0。//計(jì)到 9 清零 if(fee[7:4]==439。d9) …… else fee[3:0]=fee[3:0]+139。d1。// 費(fèi)用的低四位沒有計(jì)到 9 加 1 //end begin end//end always 輸入是時(shí)鐘信號(hào) clk 和 復(fù)位信號(hào) reset,輸出是費(fèi)用 fee, clk 接的是 time_enable 信號(hào),當(dāng) te=0時(shí),出租車進(jìn)入等待時(shí)間計(jì)費(fèi),在 clk的上升沿, fee進(jìn)行加 1計(jì)數(shù), time_enable每 2 分鐘產(chǎn)生一個(gè)正脈沖,此程序?qū)崿F(xiàn)了每 2分鐘加費(fèi) 1元的功能。 部分里程計(jì)費(fèi)代碼如下: …… always@( negedge reset or posedge clk_1 )//異步復(fù)位 begin if(!reset) //低電平有效 begin fee=1639。d8。 end else if(en==1amp。amp。start==1) if(fee[3:0]==439。d9) //費(fèi)用的低四位是不是計(jì)到了 9 begin fee[3:0]=439。d0。//計(jì)到 9 清零 if(fee[7:4]==4
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1