版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> ××大學(xué)××學(xué)院××課程設(shè)計(jì)</p><p><b> ××大學(xué)××學(xué)院</b></p><p><b> 二○一一年六月</b></p><p> 摘要:本文介紹了一個(gè)以Altera公司的Cyc
2、loneII可編程邏輯芯片EP2C5T144C8為控制核心、運(yùn)用VHDL硬件描述語言附加一定外圍電路組成的出租車計(jì)費(fèi)器系統(tǒng)。本設(shè)計(jì)論文主要介紹了出租車計(jì)費(fèi)器系統(tǒng)的組成及工作原理,簡述了在EDA平臺(tái)上用單片F(xiàn)PGA器件構(gòu)成該數(shù)字系統(tǒng)的設(shè)計(jì)思想和實(shí)現(xiàn)過程。同時(shí),詳細(xì)論述了人機(jī)交互驅(qū)動(dòng)模塊、驅(qū)動(dòng)模塊、計(jì)程模塊、計(jì)費(fèi)模塊、譯碼動(dòng)態(tài)掃描模塊等的設(shè)計(jì)方法與技巧。利用FPGA芯片實(shí)現(xiàn)一些功能較復(fù)雜的電子產(chǎn)品設(shè)計(jì),不僅可以增加系統(tǒng)設(shè)計(jì)的靈活性,利用它進(jìn)
3、行產(chǎn)品開發(fā),不僅成本低、周期短、可靠性高,而且具有完全的知識(shí)產(chǎn)權(quán)。同時(shí),在進(jìn)行SOPC設(shè)計(jì)的時(shí)候,我們可以自由調(diào)用NIOS資源模塊構(gòu)建軟核,從而減小了系統(tǒng)的功耗,實(shí)現(xiàn)產(chǎn)品的強(qiáng)大功能。關(guān)鍵字:FPGA,VHDL,EP2C5T144C8,SOPC</p><p> Abstract:This paper introduces a Altera company to CycloneII programmable l
4、ogic chips EP2C5T144C8 as control core, useing VHDL hardware description language add a certain peripheral circuit of the message accounting device system of a taxi. This design paper mainly introduced the message accoun
5、ting device taxi system composition and working principle, this paper expounds on the platform in EDA using single pill FPGA components, the digital system design thought and the implementation process. At</p><
6、;p> Key words: FPGA,VHDL,EP2C5T144C8,SOPC</p><p><b> 目 錄</b></p><p><b> 前言</b></p><p> 1.系統(tǒng)功能軟件介紹1</p><p> 1.1 QuartusII軟件介紹1<
7、/p><p> 1.2 FPGA芯片介紹1</p><p> 1.3 硬件描述語言介紹2</p><p> 2.總體方案設(shè)計(jì)3</p><p> 2.1 系統(tǒng)框圖4</p><p> 2.2 基于MCU的出租車計(jì)費(fèi)器4</p><p> 2.3 基于FPGA的出租車計(jì)
8、費(fèi)器5</p><p> 2.4 總體設(shè)計(jì)方案5</p><p> 3.單個(gè)模塊設(shè)計(jì)6</p><p> 3.1 人機(jī)交互驅(qū)動(dòng)模塊6</p><p> 3.1.1人機(jī)交互模塊6</p><p> 3.1.2人機(jī)交互模塊仿真7</p><p> 3.2 4x4矩陣
9、鍵盤驅(qū)動(dòng)模塊設(shè)計(jì)7</p><p> 3.2.1 4x4矩陣鍵盤模塊8</p><p> 3.2.2 4x4矩陣鍵盤仿真圖7</p><p> 3.3 二進(jìn)制BIN轉(zhuǎn)換成BDC(10進(jìn)制)模塊9</p><p> 3.4 FILTER驅(qū)動(dòng)模塊設(shè)計(jì)9</p><p> 3.5 PLS模塊驅(qū)動(dòng)
10、設(shè)計(jì)10</p><p> 3.5.1 PLS模塊設(shè)計(jì)10</p><p> 3.5.2 PLS模塊設(shè)計(jì)仿真圖11</p><p> 3.6 出租車控制驅(qū)動(dòng)模塊設(shè)計(jì)11</p><p> 3.7 頂層模塊12</p><p><b> 4.系統(tǒng)功能13</b><
11、/p><p> 4.1 計(jì)費(fèi)功能實(shí)現(xiàn)13</p><p> 4.2 顯示功能實(shí)現(xiàn)13</p><p> 5. 設(shè)計(jì)總結(jié)14</p><p><b> 6.參考文獻(xiàn)14</b></p><p> 附錄(主要底層模塊驅(qū)動(dòng))16</p><p><b&
12、gt; 前言</b></p><p> 隨著EDA技術(shù)的高速發(fā)展,電子系統(tǒng)的設(shè)計(jì)技術(shù)和工具發(fā)生了深刻的變化,大規(guī)模可編程邏輯器件CPLD/FPGA的出現(xiàn),給設(shè)計(jì)人員帶來了諸多方便。利用它進(jìn)行產(chǎn)品開發(fā),不僅成本低、周期短、可靠性高,而且具有完全的知識(shí)產(chǎn)權(quán)。本文介紹了一個(gè)以Altera公司可編程邏輯芯片EP2C5T144C8為控制核心、附加一定外圍電路組成的出租車計(jì)費(fèi)器系統(tǒng)。該電子產(chǎn)品在全國有很多出租
13、車公司中得到了使用,因此出租車市場(chǎng)是龐大的。由于受到油價(jià)的影響各大城市推出了運(yùn)價(jià)油價(jià)聯(lián)動(dòng)機(jī)制,所以出租車計(jì)價(jià)器計(jì)價(jià)標(biāo)準(zhǔn)的靈活性設(shè)定成為未來計(jì)費(fèi)器不可缺少的一部分?,F(xiàn)在的計(jì)費(fèi)器大部分是以單片機(jī)為開發(fā)平臺(tái),但是單片機(jī)的程序是不通用的,不同的芯片有不同的指令集,因此設(shè)計(jì)研發(fā)比較困難。而FPGA等數(shù)字可編程器件的出現(xiàn)徹底解決了這個(gè)問題,而且更穩(wěn)定、設(shè)計(jì)更靈活、能實(shí)現(xiàn)較為復(fù)雜的功能,運(yùn)用EDA軟件可方便在電腦上實(shí)現(xiàn)設(shè)計(jì)和仿真,由于本設(shè)計(jì)采用的可編
14、程器件ALTERA公司的CYCLONEII系列FPGA( EP2C5T144C8)。QuartusII化和易學(xué)易用的可視化設(shè)計(jì)環(huán)境 ,并具有符合工業(yè)標(biāo)準(zhǔn)的 EDA 工具接口 ,能在各種平臺(tái)上運(yùn)行. 它</p><p> 1.系統(tǒng)功能軟件介紹</p><p> 1.1 QuartusII軟件介紹</p><p> QuartusII是Altera公司的綜合性P
15、LD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。 </p><p> QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界
16、面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 </p><p> QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。 </p><p> 此外,QuartusII通過和DSP Builder工具與M
17、atlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平。</p><p> 1.2 FPGA芯片介紹</p><p> 隨著現(xiàn)代芯片工藝的改進(jìn),F(xiàn)PGA的等效系統(tǒng)門達(dá)到到幾百萬門,而且工作頻率也隨之提高。FPGA也就大量的在電子產(chǎn)品中出現(xiàn)。在通信行
18、業(yè),傳輸網(wǎng),醫(yī)療儀器,各種電子儀器,安防監(jiān)控,電力系統(tǒng),汽車電子,消費(fèi)類電子中都大面積的使用。隨產(chǎn)品研發(fā)周期的逐步縮短,定制型產(chǎn)品的開發(fā)使FPGA在后面的應(yīng)用面越來越廣。例如在2G通信,3G通信,以后的4G通信,wimax等等通信類的設(shè)備中它與DSP,MPU一起大量出現(xiàn)在其中。尤其是通信的數(shù)字化,軟件無線電等概念涌現(xiàn)到電子行業(yè)的各個(gè)領(lǐng)域,芯片設(shè)計(jì)的工藝的改進(jìn),45nm工藝的出現(xiàn),使得FPGA成為必不可少的流行的實(shí)惠的器件。</p&
19、gt;<p> FPGA最大的特點(diǎn)就是靈活,實(shí)現(xiàn)你想實(shí)現(xiàn)的任何數(shù)字電路,可以定制各種電路。減少受制于專用芯片的束縛。真正為自己的產(chǎn)品量身定做。在設(shè)計(jì)的過程中可以靈活的更改設(shè)計(jì)。而且它強(qiáng)大的邏輯資源和寄存器資源可以讓你輕松的去發(fā)揮設(shè)計(jì)理念,其并行執(zhí)行,硬件實(shí)現(xiàn)的方式可以應(yīng)對(duì)設(shè)計(jì)中大量的高速電子線路設(shè)計(jì)需求。 FPGA比DSP擁有更快的速度,可以實(shí)現(xiàn)非常復(fù)雜的高速邏輯,F(xiàn)PGA比ASIC(專用芯片)有更短的設(shè)計(jì)周期和靈活性,
20、免去昂貴的開版費(fèi)用,而且可以隨時(shí)裁減,增加你想要的功能達(dá)到規(guī)避設(shè)計(jì)風(fēng)險(xiǎn),回避芯片廠商的限制。另外知識(shí)產(chǎn)權(quán)的概念不斷涌現(xiàn),仿制別人抄襲,F(xiàn)PGA完全讓設(shè)計(jì)的智慧得以保護(hù)。讓公司的利益在較長時(shí)間內(nèi)得到保證。隨FPGA芯片供應(yīng)商的重視和第三方公司的重視,現(xiàn)在有非常現(xiàn)成的IP核被提供,進(jìn)一步縮短設(shè)計(jì)周期縮短,減小開發(fā)成本。現(xiàn)在很多免費(fèi)的軟IP核和硬 IP核的出現(xiàn)更是壓縮了成本。</p><p> 在當(dāng)前的FPGA器件提
21、供商中XILINX和ALTEAR這兩家公司是份額最大的供應(yīng)商,估計(jì)占90%以上。這兩家都有強(qiáng)大的技術(shù)支持,芯片的穩(wěn)定性和產(chǎn)品系列都特別的多。涵蓋了高中低幾個(gè)設(shè)計(jì)層次。如果要追求高可靠比如軍工,航天,強(qiáng)電磁干擾等條件下的設(shè)計(jì)可以考慮ACTEL公司的 FPGA,不過價(jià)格很貴。如果想一味的追求成本可以考慮LATTIC公司的FPGA,就是穩(wěn)定性和相同條件下的布線成功率較差。</p><p> 下面介紹一下FPGA的幾大
22、優(yōu)點(diǎn):</p><p> ◆FPGA運(yùn)行速度快:FPGA內(nèi)部集成鎖項(xiàng)環(huán),可以把外部時(shí)鐘倍頻,核心頻率可以到幾百M(fèi),而單片機(jī)運(yùn)行速度低的多.在高速場(chǎng)合,單片機(jī)無法代替FPGA;</p><p> ◆FPGA易于實(shí)現(xiàn)大規(guī)模系統(tǒng):單片機(jī)IO口有限,而FPGA動(dòng)輒數(shù)百IO,可以方便連接外設(shè).比如一個(gè)系統(tǒng)有多路AD/DA,單片機(jī)要進(jìn)行仔細(xì)的資源分配,總線隔離,而FPGA由于豐富的IO資源,可以很
23、容易用不同IO連接各外設(shè);</p><p> ◆FPGA能處理更復(fù)雜功能:單片機(jī)程序是串行執(zhí)行的,執(zhí)行完一條才能執(zhí)行下一條,在處理突發(fā)事件時(shí)只能調(diào)用有限的中斷資源;而FPGA不同邏輯可以并行執(zhí)行,可以同時(shí)處理不同任務(wù),這就導(dǎo)致了FPGA工作更有效率;</p><p> ◆FPGA大量軟核方便進(jìn)行二次開發(fā):FPGA甚至包含單片機(jī)和DSP軟核,并且IO數(shù)僅受FPGA自身IO限制。所以,FP
24、GA又是單片機(jī)和DSP的超集,也就是說,單片機(jī)和DSP能實(shí)現(xiàn)的功能,FPGA一般都能實(shí)現(xiàn)。</p><p> 1.3 硬件描述語言介紹</p><p> VHDL語言的優(yōu)點(diǎn)是語法嚴(yán)謹(jǐn),層次結(jié)構(gòu)清晰。缺點(diǎn)是熟悉時(shí)間長,不夠靈活。FPGA的優(yōu)點(diǎn)是設(shè)計(jì)周期短、靈活。適合用于小批量系統(tǒng),提高系統(tǒng)的可靠性和集成度,所以本設(shè)計(jì)使用了VHDL語言,它的英文全稱是Very_High_Speed In
25、tegrated Circuit Hardwere Description Language 被稱為是最標(biāo)準(zhǔn)的硬件描述語言,有專家認(rèn)為在以后VHDL和Verilog HDL語言將承擔(dān)幾乎全部的數(shù)字系統(tǒng)的設(shè)計(jì)。</p><p> VHDL語言主要用于數(shù)字系統(tǒng)的結(jié)構(gòu)|行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與語法十分類似于一般的計(jì)算機(jī)高級(jí)語言,VHDL語言的結(jié)構(gòu)程序特點(diǎn)是將一
26、項(xiàng)工程設(shè)計(jì),或被稱為設(shè)計(jì)實(shí)體(可以是一個(gè)元件、一個(gè)電路模板或一個(gè)系統(tǒng))分成外部(或稱為可視部分)和內(nèi)部(或稱不可視部分),即設(shè)計(jì)實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)可以直接調(diào)用這個(gè)實(shí)體。這種設(shè)計(jì)將內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。</p><p> 使用VHDL設(shè)計(jì)系統(tǒng)方法是自頂向下的系統(tǒng)設(shè)計(jì)方法,在設(shè)計(jì)過程中,首先從整體上對(duì)系統(tǒng)設(shè)計(jì)做詳細(xì)的規(guī)劃
27、,然后完成電路系統(tǒng)功能行為方面的設(shè)計(jì)。</p><p> 隨著DEA技術(shù)的發(fā)展,使用硬件描述語言設(shè)計(jì)FPGA成為一種趨勢(shì),使用QuartusII軟件用VHDL語言開發(fā)FPGA的完整流程為:</p><p> ◆文本編輯:用任何的文本編輯器可以,也可以用專用的HDL編輯環(huán)境,通常VHDL保存為.vhd文件;</p><p> ◆功能仿真:將文件調(diào)入HDL仿真軟件
28、進(jìn)行功能仿真,檢查邏輯功能是否正確;</p><p> ◆邏輯綜合:將源文件調(diào)入邏輯綜合器進(jìn)行綜合,即把語言綜合成最簡單的布爾表達(dá)式和信號(hào)的鏈接關(guān)系;</p><p> ◆布局布線:將綜合得到的文件調(diào)入軟件中進(jìn)行布線,把設(shè)計(jì)好的邏輯安放到FPGA內(nèi);</p><p> ◆時(shí)序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗(yàn)證電路的時(shí)序;</p>
29、;<p> ◆編程下載:確認(rèn)仿真沒有錯(cuò)誤后,將文件下載到芯片中觀察。</p><p><b> 2.總體方案設(shè)計(jì)</b></p><p><b> 2.1 系統(tǒng)框圖</b></p><p> 圖1 出租車計(jì)價(jià)器系統(tǒng)框圖</p><p> 2.2 基于MCU的出租車計(jì)費(fèi)器
30、</p><p> 硬件各個(gè)模塊的功能:</p><p> ■鍵盤控制功能是啟動(dòng)出租車的計(jì)價(jià)器,改變出租車計(jì)價(jià)器的狀態(tài)如運(yùn)行、等待計(jì)時(shí)、不同計(jì)費(fèi)模式的切換;</p><p> ■里程計(jì)算單元是通過安裝傳感器檢測(cè)到得信號(hào),送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元;</p><p> ■利用單片機(jī)豐富的I/O端口,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格
31、調(diào)節(jié)、時(shí)鐘顯示功能;</p><p> ■利用單片機(jī)實(shí)現(xiàn)出租車計(jì)價(jià)器的開發(fā)。外圍電路較多,試調(diào)復(fù)雜,抗干擾能力差,特別這種計(jì)程車的額計(jì)價(jià)器需要長時(shí)間的不間斷運(yùn)作的而系統(tǒng),由于主要是軟件運(yùn)作,容易出錯(cuò),造成系統(tǒng)不穩(wěn)定,硬件總原理框圖如圖2所示。</p><p> 圖2 出租車計(jì)價(jià)器的總原理框圖</p><p> 2.3 基于FPGA的出租車計(jì)費(fèi)器</p
32、><p> 基于FPGA的出租車計(jì)費(fèi)器是由外部輸入模塊、控制模塊和顯示模塊三部分組成??刂颇K是整個(gè)系統(tǒng)的核心。它由分頻模塊,控制模塊,計(jì)量模塊和譯碼顯示模塊構(gòu)成。</p><p> ■分頻模塊:是由系統(tǒng)對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻以得到低頻信號(hào);</p><p> ■控制模塊:主要是完成對(duì)計(jì)費(fèi)器狀態(tài)的控制;</p><p> ■計(jì)量模塊:它完成計(jì)
33、價(jià),計(jì)時(shí)和計(jì)程的功能;</p><p> ■譯碼顯示模塊:譯碼顯示模塊完成計(jì)價(jià),計(jì)時(shí)和計(jì)程的顯示。計(jì)費(fèi)據(jù)送入譯碼顯示模塊譯碼,最后送至以百元、十元、元、角為對(duì)應(yīng)單位的數(shù)碼管上顯示。計(jì)時(shí)數(shù)據(jù)送入譯碼顯示模塊,最后送至以分為單位對(duì)應(yīng)的數(shù)碼管上顯示。計(jì)程數(shù)據(jù)送入譯碼顯示模塊進(jìn)行譯碼,最后送至以千米為單位的數(shù)碼管上顯示。</p><p> 2.4 總體設(shè)計(jì)方案</p><
34、p> 方案一:它的開發(fā)及制作成本較低,能較大程度的利用資源,但外圍電路較多,試調(diào)復(fù)雜,抗干擾能力差,特別對(duì)這種計(jì)程車的計(jì)價(jià)器需要長時(shí)間不間斷運(yùn)作的系統(tǒng),由于主要是軟件運(yùn)作,容易出錯(cuò),造成系統(tǒng)不穩(wěn)定。</p><p> 方案二:將所有芯片集成在一塊芯片上,體積大大減小的同時(shí)提高了穩(wěn)定性,且可以用EDA軟件仿真,試調(diào),易于進(jìn)行功能擴(kuò)展,外圍電路較少,采用硬件邏輯電路實(shí)現(xiàn),器最大的優(yōu)點(diǎn)是穩(wěn)定性好,抗干擾能力強(qiáng)
35、,非常適合作為計(jì)程車的計(jì)價(jià)器系統(tǒng)的控制核心。</p><p> 從以上兩種方案的比較可以看出基于FPGA的設(shè)計(jì)方案要優(yōu)于基于單片機(jī)的設(shè)計(jì)方案,基于FPGA的設(shè)計(jì)方案穩(wěn)定性相對(duì)于單片機(jī)的設(shè)計(jì)方案來說它更易于將來進(jìn)行功能擴(kuò)展。因此我們確定采用基于FPGA的出租車計(jì)費(fèi)器的設(shè)計(jì)方案。</p><p><b> 3.單個(gè)模塊設(shè)計(jì)</b></p><p&g
36、t; 3.1 人機(jī)交互驅(qū)動(dòng)模塊</p><p> 本系統(tǒng)當(dāng)中使用的是以多位數(shù)碼管實(shí)現(xiàn)的人機(jī)交互界面來顯示出租車當(dāng)前的計(jì)價(jià)的情況。多位數(shù)碼管可以使用動(dòng)態(tài)掃描的方式來實(shí)現(xiàn)數(shù)據(jù)的顯示,這樣不僅節(jié)約了IO口資源,同時(shí)也節(jié)約的系統(tǒng)的成本。具體的硬件連接如圖3所示。</p><p> 圖3 人機(jī)交互硬件連接圖</p><p><b> 人機(jī)交互模塊<
37、/b></p><p> 人機(jī)交互模塊利用Verilog HDL硬件描述語言實(shí)現(xiàn)了軟件驅(qū)動(dòng),在QuartusII平臺(tái)下實(shí)現(xiàn)了軟件部分,同時(shí)將軟件轉(zhuǎn)換成原理圖的形式顯示。人機(jī)交互模塊原理圖如圖4。</p><p> 圖4 人機(jī)交互模塊原理圖</p><p><b> 人機(jī)交互模塊仿真</b></p><p>
38、 人機(jī)交互原理是將FPGA處理后的數(shù)據(jù)經(jīng)過3-8譯碼器驅(qū)動(dòng)實(shí)現(xiàn)4位LED數(shù)碼管,然后將數(shù)據(jù)送到人機(jī)界面進(jìn)行數(shù)據(jù)的顯示。仿真圖如圖5所示。</p><p> 圖5 人機(jī)交互模塊仿真圖</p><p> 3.2 4x4矩陣鍵盤驅(qū)動(dòng)模塊設(shè)計(jì)</p><p> 本系統(tǒng)當(dāng)中使用矩陣鍵盤實(shí)現(xiàn)對(duì)出租出計(jì)價(jià)器的一些控制按鍵。如果只用機(jī)械按鍵的話,不僅浪費(fèi)了IO口的資源,
39、同時(shí)不利于控制。</p><p> 3.2.1 4x4矩陣鍵盤模塊</p><p> 利用逐行掃描的方法實(shí)現(xiàn)對(duì)4x4矩陣鍵盤的驅(qū)動(dòng),利用的是Verilog HDL硬件描述語言實(shí)現(xiàn)的矩陣鍵盤的驅(qū)動(dòng)。Verilog HDL寫矩陣鍵盤的驅(qū)動(dòng),方便易實(shí)現(xiàn),因?yàn)閂erilog HDL與標(biāo)準(zhǔn)C語法是很相似的,所以寫的矩陣鍵盤的驅(qū)動(dòng)也十分好用,同時(shí)也將軟件代碼轉(zhuǎn)換成了原理圖符號(hào),如圖6。</p
40、><p> 圖6 4x4矩陣鍵盤的原理圖符號(hào)</p><p> 3.2.2 4x4矩陣鍵盤仿真圖</p><p> 圖7 4x4矩陣鍵盤的仿真圖</p><p> 3.3 二進(jìn)制BIN轉(zhuǎn)換成BDC(10進(jìn)制)模塊</p><p> 在本系統(tǒng)當(dāng)中,由于我們計(jì)算后的數(shù)據(jù)是二進(jìn)制的數(shù)據(jù),但是在我們?cè)陲@示的時(shí)候我們
41、會(huì)用到的是BCD碼的十進(jìn)制數(shù)據(jù)。所以,如圖8所示為二進(jìn)制BIN文件到BCD碼的十進(jìn)制數(shù)據(jù)的一個(gè)轉(zhuǎn)換模塊。</p><p> 圖8 二進(jìn)制轉(zhuǎn)換成BDC(10進(jìn)制)原理圖符號(hào)</p><p> 3.4 FILTER驅(qū)動(dòng)模塊設(shè)計(jì)</p><p> 本系統(tǒng)當(dāng)中使用了FILTER模塊,使用的是VHDL實(shí)現(xiàn)的該模塊的設(shè)計(jì)。VHDL語言簡單易用,設(shè)計(jì)本模塊十分簡單方便。
42、該模塊有兩個(gè)驅(qū)動(dòng)脈沖,一個(gè)是時(shí)鐘脈沖,另一個(gè)是10MS的脈沖。同時(shí),在這個(gè)模塊里面我們還加入了一個(gè)按鍵脈沖輸入,原理圖如圖9所示。</p><p> 圖9 FILTER驅(qū)動(dòng)模塊原理圖符號(hào)</p><p> 3.5 PLS模塊驅(qū)動(dòng)設(shè)計(jì)</p><p> 3.5.1 PLS模塊設(shè)計(jì)</p><p> 本系統(tǒng)當(dāng)中使用了一個(gè)PLS的模塊,
43、該模塊的驅(qū)動(dòng)使用的是VHDL硬件描述語言來實(shí)現(xiàn)的。本系統(tǒng)主要實(shí)現(xiàn)的是產(chǎn)生三個(gè)時(shí)鐘信號(hào),我們板上的使用的是CLOCK是50MHZ,然后進(jìn)行分頻得到1S的脈沖、1MS的脈沖和10MS的脈沖。如圖10所示。</p><p> 圖10 PLS模塊原理圖符號(hào)</p><p> 3.5.2 PLS模塊設(shè)計(jì)仿真圖</p><p> 圖11 PLS模塊設(shè)計(jì)仿真圖</
44、p><p> 3.6 出租車控制驅(qū)動(dòng)模塊設(shè)計(jì)</p><p> 本系統(tǒng)是一個(gè)出租車的計(jì)價(jià)器,那么計(jì)價(jià)器的控制模塊肯定是不能少的。在計(jì)價(jià)器控制模塊當(dāng)中,我們主要利用的是4x4矩陣鍵盤當(dāng)中相應(yīng)的按鍵來實(shí)現(xiàn)控制,比如說出租車開始計(jì)價(jià),停止計(jì)價(jià),計(jì)價(jià)器清零和出租車的速度等控制信號(hào)的輸入,具體原理圖如圖12所示:</p><p> 圖12 出租車控制原理圖符號(hào)</
45、p><p><b> 3.7 頂層模塊</b></p><p> 本系統(tǒng)的頂層模塊也是利用VHDL硬件描述語言來實(shí)現(xiàn)的,同時(shí)我們可以由下圖可以看到該系統(tǒng)的頂層模塊十分簡單,各個(gè)底層模塊的引腳映射都是在頂層模塊里面實(shí)現(xiàn)的,具體的實(shí)現(xiàn)如圖13所示。</p><p> 圖13頂層模塊原理圖符號(hào)</p><p><b&
46、gt; 4.系統(tǒng)功能</b></p><p> 4.1 計(jì)費(fèi)功能實(shí)現(xiàn)</p><p> 費(fèi)用的計(jì)算是按行駛里程收費(fèi),設(shè)出租車的起步價(jià)是5.00元,當(dāng)里程小于3km里時(shí),按起步價(jià)收費(fèi);當(dāng)里程大于3km時(shí)每公里按1.3元計(jì)費(fèi)。等待累計(jì)時(shí)間超過2min,按每分鐘1.5元計(jì)費(fèi)。所以總費(fèi)用按下式計(jì)算:</p><p> 總費(fèi)用=起步價(jià)+(里程-3km)*
47、里程單價(jià)+等候時(shí)間*等候單價(jià)。</p><p> 4.2 顯示功能實(shí)現(xiàn)</p><p> 顯示汽車行駛里程:用四位數(shù)字顯示,顯示方式為“XXXX”,單價(jià)為km。計(jì)程范圍為0~99km,計(jì)程分辨率為1km。</p><p> 顯示等候時(shí)間:用兩位數(shù)字顯示分鐘,顯示方式為“XX”。計(jì)時(shí)范圍為0~59min,計(jì)時(shí)分辨率為1min。</p><p
48、> 顯示總費(fèi)用:用四位數(shù)字顯示,顯示方式為“XXX.X”,單位為元。計(jì)價(jià)范圍為999.9元,計(jì)價(jià)分辨率為0.1元。</p><p><b> 5.設(shè)計(jì)總結(jié)</b></p><p> 基于FPGA的出租車計(jì)價(jià)器電子產(chǎn)品設(shè)計(jì)已經(jīng)廣泛應(yīng)用到出租車行業(yè),該設(shè)計(jì)是一種相對(duì)比較流行的產(chǎn)品設(shè)計(jì)。該設(shè)計(jì)對(duì)于里程和等待時(shí)間的計(jì)數(shù)都使用的是計(jì)數(shù)器的原理,通過fin和stop信
49、號(hào)的不同值實(shí)現(xiàn)在不同情況下的計(jì)數(shù);通過分頻產(chǎn)生的1秒、10毫秒等對(duì)應(yīng)的周期頻率關(guān)系,由1HZ的信號(hào)控制計(jì)量模塊,由控制器選擇產(chǎn)生的信號(hào)作為計(jì)費(fèi)模塊的輸入信號(hào),所以計(jì)費(fèi)模塊的輸入信號(hào)是13HZ、15HZ的信號(hào)之一,計(jì)量模塊每完成一次計(jì)數(shù),計(jì)費(fèi)模塊完成13次或者15次計(jì)數(shù),即為實(shí)現(xiàn)1.3元或1.5元的計(jì)費(fèi)。</p><p> VHDL硬件描述語言和EDA基礎(chǔ)實(shí)驗(yàn)教程是設(shè)計(jì)中對(duì)于各個(gè)模塊的設(shè)計(jì)是基礎(chǔ),首先要分析清楚各
50、個(gè)模塊的功能,然后分別進(jìn)行編程設(shè)計(jì)、驗(yàn)證,然后使用VHDL語言中的元件例化語句,將各個(gè)模塊組合到一起,實(shí)現(xiàn)總的設(shè)計(jì)功能。在硬件實(shí)現(xiàn)過程中,當(dāng)進(jìn)行等待計(jì)時(shí)計(jì)費(fèi)時(shí),發(fā)現(xiàn)計(jì)時(shí)很慢,初步分析是因?yàn)橛?jì)時(shí)的驅(qū)動(dòng)頻率不大,需要選擇256HZ以上的頻率;更改以后,計(jì)時(shí)正常,但同頻率下行駛計(jì)費(fèi)速度較快,不便觀察,因此要注意觀察的點(diǎn)和頻率的選擇。</p><p> 在本次設(shè)計(jì)當(dāng)中,本人成功實(shí)現(xiàn)了該設(shè)計(jì)的各個(gè)底層模塊的設(shè)計(jì),而各個(gè)模
51、塊使用了不同的硬件描述語言,有Verilog HDL和VHDL兩種。同時(shí),與各個(gè)組員共同配合完成了設(shè)計(jì)等文章的書寫。在本次設(shè)計(jì)當(dāng)中,我學(xué)到了將理論與實(shí)踐相結(jié)合,同時(shí)與團(tuán)隊(duì)的精神才是強(qiáng)大的,只有與各個(gè)組員共同配合才可能做出真正的電子設(shè)計(jì)。</p><p> 在這里,也要感謝××教授和××老師的不斷耐心指導(dǎo),才得以完成了本次的設(shè)計(jì)任務(wù)。所以,在這里非常感謝兩位老師的嚴(yán)謹(jǐn)細(xì)致、
52、一絲不茍的作風(fēng)。老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪,這次課程設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開老師您的細(xì)心指導(dǎo)。同時(shí)感謝對(duì)我?guī)椭^的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同學(xué)的友誼。</p><p><b> 6.參考文獻(xiàn)</b></p><p> [1]譚會(huì)生、瞿遂春,《EDA技術(shù)綜合應(yīng)用實(shí)例與分析》,西安電子科技大學(xué)出版社,2004,
53、P.201-230</p><p> [2]高有堂,《EDA技術(shù)及應(yīng)用實(shí)踐》,清華大學(xué)出版社,2006,P.201-230</p><p> [3]億特科技,《CPLD/FPGA應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)》,人民郵電出版社,2005,P.201-230</p><p> [4]指導(dǎo)書 劉春陽 趙世彧,《EDA技術(shù)實(shí)踐》,人民郵電出版社,2003,P.201-230
54、</p><p> [5]潘松 黃繼業(yè),《EDA技術(shù)實(shí)用教程》,科學(xué)出版社,2004,P.201-230</p><p> 附錄(主要底層模塊驅(qū)動(dòng))</p><p> 多位數(shù)據(jù)管軟件驅(qū)動(dòng):</p><p> module seg(</p><p> input i_clk,</p>
55、<p> input i_rst_n,</p><p> input [7:0] i_turn_off, // 熄滅位[2進(jìn)制</p><p> input [7:0] i_dp, // 小數(shù)點(diǎn)位[2進(jìn)制</p><p> input [31:0] i_dat
56、a, // 欲顯數(shù)據(jù)[16進(jìn)制 </p><p> output [7:0] o_seg, // 段腳</p><p> output [2:0] o_sel, // 使用74HC138譯出位腳</p><p> output o_cs
57、 // 74HC138選擇位</p><p><b> );</b></p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 分頻部分 開始</p><p> //++++++++++++++++++++++++++
58、++++++++++++</p><p> reg [15:0] cnt; // 計(jì)數(shù)子</p><p> always @ (posedge i_clk, negedge i_rst_n)</p><p> if (!i_rst_n)</p><p><b> cnt <
59、;= 0;</b></p><p><b> else</b></p><p> cnt <= cnt + 1'b1;</p><p> wire seg7_clk = cnt[15]; // (2^16/25M = 2.6114)ms </p><p>
60、//--------------------------------------</p><p> // 分頻部分 結(jié)束</p><p> //--------------------------------------</p><p> //++++++++++++++++++++++++++++++++++++++</p><p>
61、 // 動(dòng)態(tài)掃描, 生成seg7_addr 開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg [2:0] seg7_addr; // 第幾個(gè)seg7</p><p> always @ (posedge seg7_clk, negedge
62、i_rst_n)</p><p> if (!i_rst_n)</p><p> seg7_addr <= 0;</p><p><b> else</b></p><p> seg7_addr <= seg7_addr + 1'b1; </p><p>
63、//--------------------------------------</p><p> // 動(dòng)態(tài)掃描, 生成seg7_addr 結(jié)束</p><p> //--------------------------------------</p><p> //++++++++++++++++++++++++++++++++++++++</p&g
64、t;<p> // 根據(jù)seg7_addr, 譯出位碼 開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg [2:0] o_sel_r; // 位選碼寄存器</p><p> // 開發(fā)板上SEG7的方向是低位在左,高位在右
65、</p><p> // 但是實(shí)際上我們看數(shù)的方向是高位在左,低位在右</p><p> // 故此處將第0位對(duì)應(yīng)DIG[7],第7位對(duì)應(yīng)DIG[0]</p><p><b> always</b></p><p> case (seg7_addr)</p><p> 0 : o_sel
66、_r = 3'b111; // SEG7[7]</p><p> 1 : o_sel_r = 3'b110; // SEG7[6]</p><p> 2 : o_sel_r = 3'b101; // SEG7[5]</p><p> 3 : o_sel_
67、r = 3'b100; // SEG7[4] </p><p> 4 : o_sel_r = 3'b011; // SEG7[3]</p><p> 5 : o_sel_r = 3'b010; // SEG7[2]</p><p> 6 : o_sel
68、_r = 3'b001; // SEG7[1]</p><p> 7 : o_sel_r = 3'b000; // SEG7[0]</p><p><b> endcase</b></p><p> //--------------------------------
69、------</p><p> // 根據(jù)seg7_addr, 譯出位碼 結(jié)束</p><p> //--------------------------------------</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 根據(jù)seg7_addr, 選擇熄
70、滅碼 開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg turn_off_r; // 熄滅碼</p><p><b> always</b></p><p> case (seg7_a
71、ddr)</p><p> 0 : turn_off_r = i_turn_off[0];</p><p> 1 : turn_off_r = i_turn_off[1];</p><p> 2 : turn_off_r = i_turn_off[2];</p><p> 3 : turn_off_r = i_turn_off[3];
72、</p><p> 4 : turn_off_r = i_turn_off[4];</p><p> 5 : turn_off_r = i_turn_off[5];</p><p> 6 : turn_off_r = i_turn_off[6];</p><p> 7 : turn_off_r = i_turn_off[7];<
73、/p><p><b> endcase</b></p><p> //--------------------------------------</p><p> // 根據(jù)seg7_addr, 選擇熄滅碼 結(jié)束</p><p> //--------------------------------------&l
74、t;/p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 根據(jù)seg7_addr, 選擇小數(shù)點(diǎn)碼 開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg dp_r;
75、 // 小數(shù)點(diǎn)碼</p><p><b> always</b></p><p> case (seg7_addr)</p><p> 0 : dp_r = i_dp[0];</p><p> 1 : dp_r = i_dp[1];</p><p> 2 :
76、dp_r = i_dp[2];</p><p> 3 : dp_r = i_dp[3];</p><p> 4 : dp_r = i_dp[4];</p><p> 5 : dp_r = i_dp[5];</p><p> 6 : dp_r = i_dp[6];</p><p> 7 : dp_r = i_d
77、p[7];</p><p><b> endcase</b></p><p> //--------------------------------------</p><p> // 根據(jù)seg7_addr, 選擇小數(shù)點(diǎn)碼 結(jié)束</p><p> //------------------------------
78、--------</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 根據(jù)seg7_addr, 選擇待譯段碼 開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg [3:0] seg_d
79、ata_r; // 待譯段碼</p><p><b> always</b></p><p> case (seg7_addr)</p><p> 0 : seg_data_r = i_data[3:0];</p><p> 1 : seg_data_r = i_data[7:
80、4];</p><p> 2 : seg_data_r = i_data[11:8];</p><p> 3 : seg_data_r = i_data[15:12];</p><p> 4 : seg_data_r = i_data[19:16];</p><p> 5 : seg_data_r = i_data[23:20];&l
81、t;/p><p> 6 : seg_data_r = i_data[27:24];</p><p> 7 : seg_data_r = i_data[31:28];</p><p><b> endcase</b></p><p> //--------------------------------------&l
82、t;/p><p> // 根據(jù)seg7_addr, 選擇待譯段碼 結(jié)束</p><p> //--------------------------------------</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 根據(jù)熄滅碼/小數(shù)點(diǎn)碼/待譯段碼</p&
83、gt;<p> // 譯出段碼,開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg [7:0] o_seg_r; // 段碼寄存器</p><p><b> // 共陰</b></p>&
84、lt;p> always @ (posedge i_clk, negedge i_rst_n)</p><p> if (!i_rst_n)</p><p> o_seg_r <= 8'h00; // 送熄滅碼</p><p><b> else</b></p>&l
85、t;p> if(turn_off_r) // 送熄滅碼</p><p> o_seg_r <= 8'h00;</p><p><b> else</b></p><p><b> if(!dp_r)</b></p><p> c
86、ase(seg_data_r) // 無小數(shù)點(diǎn)</p><p> 4'h0 : o_seg_r <= 8'h3f;</p><p> 4'h1 : o_seg_r <= 8'h06;</p><p> 4'h2 : o_seg_r <= 8'h5b;</p&g
87、t;<p> 4'h3 : o_seg_r <= 8'h4f;</p><p> 4'h4 : o_seg_r <= 8'h66;</p><p> 4'h5 : o_seg_r <= 8'h6d;</p><p> 4'h6 : o_seg_r <= 8'
88、h7d;</p><p> 4'h7 : o_seg_r <= 8'h07;</p><p> 4'h8 : o_seg_r <= 8'h7f;</p><p> 4'h9 : o_seg_r <= 8'h6f;</p><p> 4'hA : o_seg_r
89、<= 8'h77;</p><p> 4'hB : o_seg_r <= 8'h7c;</p><p> 4'hC : o_seg_r <= 8'h39;</p><p> 4'hD : o_seg_r <= 8'h5e;</p><p> 4'h
90、E : o_seg_r <= 8'h79;</p><p> 4'hF : o_seg_r <= 8'h71;</p><p><b> endcase</b></p><p><b> else</b></p><p> case(seg_data_r)
91、 // 加小數(shù)點(diǎn)</p><p> 4'h0 : o_seg_r <= 8'h3f | 8'h80;</p><p> 4'h1 : o_seg_r <= 8'h06 | 8'h80;</p><p> 4'h2 : o_seg_r <= 8'h5b
92、 | 8'h80;</p><p> 4'h3 : o_seg_r <= 8'h4f | 8'h80;</p><p> 4'h4 : o_seg_r <= 8'h66 | 8'h80;</p><p> 4'h5 : o_seg_r <= 8'h6d | 8'h
93、80;</p><p> 4'h6 : o_seg_r <= 8'h7d | 8'h80;</p><p> 4'h7 : o_seg_r <= 8'h07 | 8'h80;</p><p> 4'h8 : o_seg_r <= 8'h7f | 8'h80;</p&
94、gt;<p> 4'h9 : o_seg_r <= 8'h6f | 8'h80;</p><p> 4'hA : o_seg_r <= 8'h77 | 8'h80;</p><p> 4'hB : o_seg_r <= 8'h7c | 8'h80;</p><p
95、> 4'hC : o_seg_r <= 8'h39 | 8'h80;</p><p> 4'hD : o_seg_r <= 8'h5e | 8'h80;</p><p> 4'hE : o_seg_r <= 8'h79 | 8'h80;</p><p> 4
96、9;hF : o_seg_r <= 8'h71 | 8'h80;</p><p><b> endcase</b></p><p> //--------------------------------------</p><p> // 根據(jù)熄滅碼/小數(shù)點(diǎn)碼/待譯段碼</p><p> /
97、/ 譯出段碼,結(jié)束</p><p> //--------------------------------------</p><p> assign o_sel = o_sel_r; // 寄存器輸出位選碼</p><p> assign o_seg = o_seg_r; // 寄存器輸出段碼&
98、lt;/p><p> assign o_cs = 1; // 寄存器輸出選擇</p><p><b> endmodule</b></p><p> 4x4矩陣鍵盤軟件驅(qū)動(dòng):</p><p> module matrixKeyboard_drive(</p>&l
99、t;p><b> i_clk,</b></p><p><b> i_rst_n,</b></p><p> row, // 矩陣鍵盤 行</p><p> col, // 矩陣鍵盤 列</p><p> keyboar
100、d_val , // 鍵盤值 </p><p> key_pressed_flag</p><p><b> );</b></p><p> input i_clk;</p><p> input i_rst_n;</p><p
101、> input [3:0] row; // 矩陣鍵盤 行</p><p> output reg [3:0] col; // 矩陣鍵盤 列</p><p> output reg [3:0] keyboard_val ; // 鍵盤值 </p><p> o
102、utput key_pressed_flag ;</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 分頻部分 開始</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> reg
103、[18:0] cnt; // 計(jì)數(shù)子</p><p> always @ (posedge i_clk, negedge i_rst_n)</p><p> if (!i_rst_n)</p><p><b> cnt <= 0;</b></p><p><
104、;b> else</b></p><p> cnt <= cnt + 1'b1;</p><p> wire key_clk = cnt[18]; // (2^19/25M = 21)ms </p><p> //--------------------------------------<
105、/p><p> // 分頻部分 結(jié)束</p><p> //--------------------------------------</p><p> //++++++++++++++++++++++++++++++++++++++</p><p> // 狀態(tài)機(jī)部分 開始</p><p> //++++++
106、++++++++++++++++++++++++++++++++</p><p> // 狀態(tài)數(shù)較少,獨(dú)熱碼編碼</p><p> parameter NO_KEY_PRESSED = 6'b000_001; // 沒有按鍵按下 </p><p> parameter SCAN_COL0 = 6'b000_010; // 掃描第
107、0列 </p><p> parameter SCAN_COL1 = 6'b000_100; // 掃描第1列 </p><p> parameter SCAN_COL2 = 6'b001_000; // 掃描第2列 </p><p> parameter SCAN_COL3 = 6'b010_000;
108、 // 掃描第3列 </p><p> parameter KEY_PRESSED = 6'b100_000; // 有按鍵按下</p><p> reg [5:0] current_state, next_state; // 現(xiàn)態(tài)、次態(tài)</p><p> always @ (posedge key_clk, negedge i_rst
109、_n)</p><p> if (!i_rst_n)</p><p> current_state <= NO_KEY_PRESSED;</p><p><b> else</b></p><p> current_state <= next_state;</p><p>
110、// 根據(jù)條件轉(zhuǎn)移狀態(tài)</p><p> always @ *</p><p> case (current_state)</p><p> NO_KEY_PRESSED : // 沒有按鍵按下</p><p> if (row != 4'hF)</p><p>
111、 next_state = SCAN_COL0;</p><p><b> else</b></p><p> next_state = NO_KEY_PRESSED;</p><p> SCAN_COL0 : // 掃描第0列 </p><p> if (row
112、!= 4'hF)</p><p> next_state = KEY_PRESSED;</p><p><b> else</b></p><p> next_state = SCAN_COL1;</p><p> SCAN_COL1 : // 掃描第1列
113、</p><p> if (row != 4'hF)</p><p> next_state = KEY_PRESSED;</p><p><b> else</b></p><p> next_state = SCAN_COL2; </p><p> SCAN_COL2
114、: // 掃描第2列</p><p> if (row != 4'hF)</p><p> next_state = KEY_PRESSED;</p><p><b> else</b></p><p> next_state = SCAN_COL3;<
115、;/p><p> SCAN_COL3 : // 掃描第3列</p><p> if (row != 4'hF)</p><p> next_state = KEY_PRESSED;</p><p><b> else</b></p><p&g
116、t; next_state = NO_KEY_PRESSED;</p><p> KEY_PRESSED : // 有按鍵按下</p><p> if (row != 4'hF)</p><p> next_state = KEY_PRESSED;</p><p><b>
117、 else</b></p><p> next_state = NO_KEY_PRESSED; </p><p><b> endcase</b></p><p> reg key_pressed_flag; // 鍵盤按下標(biāo)志</p>
118、<p> reg [3:0] col_val, row_val; // 列值、行值</p><p> // 根據(jù)次態(tài),給相應(yīng)寄存器賦值</p><p> always @ (posedge key_clk, negedge i_rst_n)</p><p> if (!i_rst_n)</p><p&
119、gt;<b> begin</b></p><p> col <= 4'h0;</p><p> key_pressed_flag <= 0;</p><p><b> end</b></p><p><b> else<
120、/b></p><p> case (next_state)</p><p> NO_KEY_PRESSED : // 沒有按鍵按下</p><p><b> begin</b></p><p> col <= 4'h0;</p
121、><p> key_pressed_flag <= 0; // 清鍵盤按下標(biāo)志</p><p><b> end</b></p><p> SCAN_COL0 : // 掃描第0列</p><p> col <= 4'b1110;<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 課程設(shè)計(jì)--出租車計(jì)價(jià)器設(shè)計(jì)
- 出租車計(jì)價(jià)器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- 基于fpga的出租車計(jì)價(jià)器設(shè)計(jì)
- 基于fpga設(shè)計(jì)的出租車計(jì)價(jià)器
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器的設(shè)計(jì)
- 課程設(shè)計(jì)--出租車計(jì)價(jià)器的設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告
- 硬件課程設(shè)計(jì)----出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)--出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 出租車計(jì)價(jià)器課程設(shè)計(jì)論文
- 接口課程設(shè)計(jì)---出租車計(jì)價(jià)器
- 基于multisim的出租車計(jì)價(jià)器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)程計(jì)價(jià)器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論