紅綠燈交通信號(hào)系統(tǒng)設(shè)計(jì)說(shuō)明_第1頁(yè)
紅綠燈交通信號(hào)系統(tǒng)設(shè)計(jì)說(shuō)明_第2頁(yè)
紅綠燈交通信號(hào)系統(tǒng)設(shè)計(jì)說(shuō)明_第3頁(yè)
紅綠燈交通信號(hào)系統(tǒng)設(shè)計(jì)說(shuō)明_第4頁(yè)
紅綠燈交通信號(hào)系統(tǒng)設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

...17/19目錄摘要………………………1VHDL的基本概念……………2VHDL語(yǔ)言的產(chǎn)生和發(fā)展……………………21.2VHDL語(yǔ)言的特點(diǎn)……………21.3VHDL語(yǔ)言與模擬……………31.4編譯型模擬方法與VHDL與C++的類比……31.5VHDL在電子系統(tǒng)硬件設(shè)計(jì)中的優(yōu)點(diǎn)………4第二章紅綠燈交通信號(hào)系統(tǒng)…………52.1紅綠燈交通信號(hào)系統(tǒng)功能概述……………52.2紅綠燈交通信號(hào)系統(tǒng)外觀…………………52.3紅綠燈交通信號(hào)系統(tǒng)的VHDL模塊…………62.4紅綠燈交通信號(hào)系統(tǒng)VHDL程序……………62.4.1clk_gen時(shí)鐘發(fā)生電路(即分頻電路)的VHDL設(shè)計(jì)………………62.4.2traffic_mnx計(jì)數(shù)秒數(shù)選擇電路的VHDL程序設(shè)計(jì)…82.4.3count_down倒計(jì)時(shí)控制電路的VHDL程序設(shè)計(jì)……102.4.4traffic_fsm紅綠燈信號(hào)控制電路的VHDL程序設(shè)計(jì)………………122.5建造一個(gè)屬于自己的程序包(package)…………………132.5.1traffic紅綠燈信號(hào)系統(tǒng)電路的VHDL程序設(shè)計(jì)……15第三章結(jié)論……………16參考文獻(xiàn)…………………17VHDL紅綠燈交通信號(hào)系統(tǒng)廖凱三峽學(xué)院電子信息工程專業(yè)2001級(jí)萬(wàn)州404000摘要:近年來(lái)隨著科技的飛速發(fā)展,VHDL的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月益更新。傳統(tǒng)交通燈控制器多數(shù)由單片機(jī)或PLC實(shí)現(xiàn)。本論文介紹一種用VHDL實(shí)現(xiàn)紅綠燈交通信號(hào)系統(tǒng)的設(shè)計(jì)方法。關(guān)鍵字:VHDLMAXPLUSⅡ交通信號(hào)燈國(guó)際化引言:在現(xiàn)代城市中,隨著人口和汽車(chē)的急劇增長(zhǎng),市區(qū)交通日益擁擠,要是沒(méi)有紅綠燈作為指揮工具,恐怕川流不息的汽車(chē)就會(huì)由于混亂而造成嚴(yán)重阻塞。因此,交通燈是交管部門(mén)管理城市交通的重要工具之一。隨著電子與計(jì)算機(jī)技術(shù)的迅速發(fā)展,電子電路的分析與設(shè)計(jì)方法發(fā)生了重大的變化。電子設(shè)計(jì)自動(dòng)化技術(shù)已成為設(shè)計(jì)現(xiàn)代電子系統(tǒng)必不可少的工具和手段。在電子技術(shù)領(lǐng)域里,為了便于儲(chǔ)存,分析和傳輸,常將模擬信號(hào)編碼,即把它轉(zhuǎn)換為數(shù)字信號(hào),利用數(shù)字邏輯這一強(qiáng)有力的工具來(lái)分析和設(shè)計(jì)復(fù)雜的數(shù)字電路或數(shù)字系統(tǒng),為信號(hào)的儲(chǔ)存,分析和傳輸創(chuàng)造了硬件環(huán)境。根據(jù)這次的設(shè)計(jì)要求,設(shè)計(jì)交通燈,我們以傳統(tǒng)電子設(shè)計(jì)方法為基礎(chǔ)的工程設(shè)計(jì)基礎(chǔ)上,引入了電子設(shè)計(jì)自動(dòng)化技術(shù),模擬與數(shù)字、硬件與軟件相結(jié)合的綜合性設(shè)計(jì),通過(guò)VHDL數(shù)字控制系統(tǒng),設(shè)計(jì)了可控交通信號(hào)燈??删幊唐骷膹V泛應(yīng)用,為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。由于可編程器件可以通過(guò)軟件編程對(duì)硬件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣快捷方便。通常使用硬件描述語(yǔ)言(HardwareDescriPtionLan-guage,HDL)進(jìn)行數(shù)字電子系統(tǒng)設(shè)計(jì)。目前應(yīng)用廣泛的硬件描述語(yǔ)言有:VHDL語(yǔ)言,VerilogHDL語(yǔ)言,AHDL語(yǔ)言。VHDL語(yǔ)言由于具有強(qiáng)大的行為描述能力和豐富的仿真語(yǔ)句從而成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。交通信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。隨著中國(guó)加入WTO,我們不但要在經(jīng)濟(jì)、文化、科技等各方面與國(guó)際接軌,在交通控制方面也應(yīng)與國(guó)際接軌。俗話說(shuō)“要想富,先修路”,但路修好了如果在交通控制方面做不好道路還是無(wú)法保障暢通安全。作為交通控制的重要組成部份的交通信號(hào)燈也應(yīng)國(guó)際化。VHDL的基本概念電子設(shè)計(jì)自動(dòng)化(EDA)的關(guān)鍵技術(shù)之一是要求用形式化方法來(lái)描述數(shù)字系統(tǒng)的硬件電路。硬件描述語(yǔ)言HDL在電子設(shè)計(jì)自動(dòng)化中扮演著重要角色,它是EDA技術(shù)研究的重點(diǎn)之一。作為IEEE標(biāo)準(zhǔn)的硬件描述語(yǔ)言VHDL已在設(shè)計(jì)中得到了廣泛的應(yīng)用,且影響日益深遠(yuǎn)。VHDL語(yǔ)言的產(chǎn)生和發(fā)展硬件描述語(yǔ)言HDL是一個(gè)劃時(shí)代的進(jìn)步,它的出現(xiàn)和發(fā)展使得自頂向下的數(shù)字系統(tǒng)(集成電路/計(jì)算機(jī))設(shè)計(jì)方法成為可能,也促使新一代EDA工具的出現(xiàn),并使得電子設(shè)計(jì)自動(dòng)化方法主流從傳統(tǒng)的自底向上的設(shè)計(jì)方法發(fā)展到自頂向下的設(shè)計(jì)方法。硬件描述語(yǔ)言的發(fā)展至今已有幾十年的歷史,并已成功地應(yīng)用到系統(tǒng)的模擬和設(shè)計(jì)等各方面。到20世紀(jì)80年代后期,已出現(xiàn)上百種硬件描述語(yǔ)言,它們對(duì)設(shè)計(jì)自動(dòng)化起到了促進(jìn)和推動(dòng)作用,但是由于它們各自針對(duì)特定的設(shè)計(jì)領(lǐng)域,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),從而使一般用戶難以使用。廣大用戶所企盼的是一種面向設(shè)計(jì)的多層次、多領(lǐng)域且得到一致認(rèn)同的標(biāo)準(zhǔn)的硬件描述語(yǔ)言。20世紀(jì)80年代后期由美國(guó)國(guó)防部開(kāi)發(fā)的VHDL語(yǔ)言恰好滿足了上述要求,并在1987年12月由IEEE標(biāo)準(zhǔn)化。它的出現(xiàn)為電子設(shè)計(jì)自動(dòng)化的發(fā)展和推廣奠定了堅(jiān)實(shí)的基礎(chǔ)。在此期間,許多地方形成了VHDL的用戶組織,VHDL語(yǔ)言的標(biāo)準(zhǔn)化使得它在國(guó)際用戶中獲得了廣泛的理解和支持,從而又進(jìn)一步促進(jìn)VHDL的發(fā)展。隨后,VHDL進(jìn)入廣泛的應(yīng)用時(shí)代。特別是進(jìn)入20世紀(jì)90年代以后,有關(guān)VHDL語(yǔ)言的發(fā)展成為一種主流技術(shù)。VHDL語(yǔ)言逐漸成為數(shù)字系統(tǒng)設(shè)計(jì)的主要描述語(yǔ)言,它在世界各國(guó)得到了廣泛應(yīng)用。有文獻(xiàn)表明,90%以上的用戶已在使用或即將使用VHDL。VHDL語(yǔ)言的特點(diǎn)VHDL語(yǔ)言能夠形式化地表示電路的結(jié)構(gòu)與行為,支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述,并借用高級(jí)語(yǔ)言的精巧結(jié)構(gòu)簡(jiǎn)化電路的描述,具有電路模擬與驗(yàn)證機(jī)制,保證設(shè)計(jì)的正確性,支持電路描述由高層向地層的綜合變換,易于理解和重用。此外,它還是一種與實(shí)現(xiàn)技術(shù)相獨(dú)立的語(yǔ)言,既不束縛于某一特定的模擬程序或數(shù)字裝置上,也不把設(shè)計(jì)方法強(qiáng)加于設(shè)計(jì)者。它允許設(shè)計(jì)者在其使用圍選擇工藝和方法。為了適應(yīng)未來(lái)的數(shù)字硬件技術(shù),VHDL還提供了便于將新技術(shù)引入現(xiàn)有設(shè)計(jì)的潛力。VHDL語(yǔ)言的最大特點(diǎn)是描述能力極強(qiáng),可覆蓋邏輯設(shè)計(jì)的諸多領(lǐng)域和層次,并支持眾多的硬件模型。其特點(diǎn)包括:(1)設(shè)計(jì)技術(shù)齊全,方法靈活,支持廣泛VHDL語(yǔ)言支持自頂向下(topdown)和基于庫(kù)(library-based)的設(shè)計(jì)方法,而且還支持同步電路、異步電路以與其他隨機(jī)邏輯電路的設(shè)計(jì)。其圍之廣是其他HDL語(yǔ)言所不能比擬的。另外,由于VHDL語(yǔ)言早在1987年12月就已作為IEEEstd1076標(biāo)準(zhǔn)公開(kāi)發(fā)布,因此,目前大多數(shù)EDA工具幾乎在不同程度上都支持VHDL語(yǔ)言。這樣就給VHDL語(yǔ)言的進(jìn)一步推廣和應(yīng)用創(chuàng)造了良好的環(huán)境。(2)系統(tǒng)硬件描述能力強(qiáng)VHDL語(yǔ)言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的數(shù)學(xué)模型直到門(mén)級(jí)電路;并且,高層次的行為描述可以與低層次的RTL(寄存器傳送語(yǔ)言)描述和門(mén)級(jí)描述混合使用。VHDL語(yǔ)言能夠進(jìn)行系統(tǒng)級(jí)的硬件描述,這是它的一個(gè)最突出的優(yōu)點(diǎn)。(3)VHDL語(yǔ)言可以與工藝無(wú)關(guān)地進(jìn)行編程在用VHDL語(yǔ)言設(shè)計(jì)系統(tǒng)硬件時(shí),沒(méi)有嵌入與工藝相關(guān)的信息(當(dāng)然這些信息也是可以用VHDL描述的)。與大多數(shù)HDL語(yǔ)言的不同之處是,當(dāng)門(mén)級(jí)或門(mén)級(jí)以上層次的描述通過(guò)模擬驗(yàn)證之后,再用相應(yīng)的工具將設(shè)計(jì)映射成不同的工藝(如MOS,CMOS等)。這樣,在工藝更新時(shí),就無(wú)須修改原設(shè)計(jì),只要改變相應(yīng)的工藝工具即可。(4)VHDL語(yǔ)言標(biāo)準(zhǔn)、規(guī),易于共享和重用由于VHDL語(yǔ)言已作為一種IEEE的工業(yè)標(biāo)準(zhǔn),這樣設(shè)計(jì)的成果便于重用和交流,反過(guò)來(lái)又能進(jìn)一步推動(dòng)VHDL語(yǔ)言的推廣和完善。另外,VHDL語(yǔ)言的語(yǔ)法比較嚴(yán)格,風(fēng)格類似于Ada語(yǔ)言,給閱讀和使用都帶來(lái)極大的方便。VHDL語(yǔ)言與模擬VHDL是為數(shù)字電路的建模和模擬(simulation)而制定的,是一種面向模擬的語(yǔ)言,它的語(yǔ)法中有許多方面均考慮到模擬的因素。包括VHDL的硬件相關(guān)結(jié)構(gòu)、并發(fā)性特征和混合級(jí)描述與混合級(jí)模擬。(1)VHDL中的硬件相關(guān)結(jié)構(gòu)VHDL具有許多與數(shù)字電路結(jié)構(gòu)直接相關(guān)的概念,其中最主要的是元件,它是數(shù)字硬件結(jié)構(gòu)——“黑盒”的抽象。VHDL中的元件由實(shí)體、結(jié)構(gòu)體兩個(gè)概念共同描述完成。其中實(shí)體描述元件與外部環(huán)境的接口,其部行為與結(jié)構(gòu)是完全隱蔽的。實(shí)體的功能定義在稱為結(jié)構(gòu)體的分離單元中,結(jié)構(gòu)體規(guī)定設(shè)計(jì)實(shí)體輸入與輸出之間的關(guān)系。一個(gè)實(shí)體可存在多個(gè)對(duì)應(yīng)的結(jié)構(gòu)體,分別以行為、結(jié)構(gòu)、數(shù)據(jù)流與各種方式混合的描述方法實(shí)現(xiàn)。元件的存在使VHDL脫離普通程序語(yǔ)言的疇,成為描述數(shù)字電路的專用硬件設(shè)計(jì)語(yǔ)言。VHDL中的信號(hào)(signal)概念是數(shù)字電路中連線的抽象,它是各元件、各進(jìn)程之間進(jìn)行通信的數(shù)據(jù)通路。VHDL號(hào)的狀態(tài)會(huì)影響與信號(hào)相關(guān)的進(jìn)程的運(yùn)行,體現(xiàn)數(shù)字系統(tǒng)的各單元的輸入與輸出的狀態(tài)。VHDL中的進(jìn)程(process)完成電路行為的描述,由一系列順序語(yǔ)句組成,是VHDL設(shè)計(jì)中進(jìn)行功能描述的基本單元。由于進(jìn)程的執(zhí)行是并發(fā)的,因此在VHDL在中引入delta延遲概念,用于表示時(shí)間上無(wú)窮小的模擬步,是VHDL中模擬進(jìn)程同步機(jī)制的關(guān)鍵。一個(gè)模擬時(shí)刻包括若干delta延遲,所有進(jìn)程均可能在特定條件下,在同一時(shí)刻的任一delta延遲點(diǎn)上激活。設(shè)計(jì)者的設(shè)計(jì)意圖有時(shí)希望忽略在delta延遲點(diǎn)上的變化,著重于計(jì)算一個(gè)模擬時(shí)刻結(jié)實(shí)時(shí)的穩(wěn)定階段的狀態(tài)。因此VHDL93引進(jìn)了延遲進(jìn)程的概念。該類進(jìn)程只在某一時(shí)刻的最后一個(gè)delta延遲時(shí)激活,這樣可以降低處理頻率,尤其是當(dāng)用于時(shí)序檢查的時(shí)候。(2)VHDL并發(fā)性特征VHDL的并發(fā)性體現(xiàn)在兩個(gè)方面,首先在使用VHDL進(jìn)行數(shù)字電路設(shè)計(jì)時(shí)存在并發(fā)性,即VHDL支持設(shè)計(jì)分解,可使被分解的各子部分的設(shè)計(jì)并行完成。一個(gè)模型的設(shè)計(jì)主要由3部分組成:定義實(shí)體部分——確立模型與環(huán)境的接口;定義結(jié)構(gòu)體部分——完成模型的功能描述;定義測(cè)試部分——為模型生成測(cè)試向量,并捕獲模型輸出信號(hào)狀態(tài)以供分析。在設(shè)計(jì)流程方面,在系統(tǒng)分析階段,系統(tǒng)分析者可將設(shè)計(jì)對(duì)象分為若干獨(dú)立的子元件,交給若干設(shè)計(jì)小組實(shí)現(xiàn)。此階段,系統(tǒng)分析者嚴(yán)格定義元件接口,并將元件之間的相互作用以文檔形式提供給各設(shè)計(jì)小組。然后,各設(shè)計(jì)小組可獨(dú)立并行地對(duì)子元件進(jìn)行詳細(xì)設(shè)計(jì),并模擬驗(yàn)證子元件,確保正確無(wú)誤。最終,系統(tǒng)設(shè)計(jì)者集成各子元件形成完整的設(shè)計(jì),對(duì)整個(gè)設(shè)計(jì)進(jìn)行模擬驗(yàn)證。設(shè)計(jì)的并發(fā)性可極加快整體設(shè)計(jì)進(jìn)程并提高設(shè)計(jì)質(zhì)量。其次,VHDL之所以稱為硬件描述語(yǔ)言,很重要的一點(diǎn)是因?yàn)樗谀M執(zhí)行上具有并發(fā)性,這一點(diǎn)很適于描述電路活動(dòng)的并發(fā)性特點(diǎn),是其他程序設(shè)計(jì)語(yǔ)言所不具備的。并發(fā)性使得VHDL中的進(jìn)程類似于UNIX操作系統(tǒng)的進(jìn)程概念,它們的掛起、活動(dòng)均是獨(dú)立的。并發(fā)性使得VHDL的設(shè)計(jì)模擬可在并行機(jī)上進(jìn)行,這樣大大提高了模擬效率,是解決模擬時(shí)間瓶勁的方法之一。在并行模擬中,VHDL源描述經(jīng)編譯后,結(jié)構(gòu)確立除完成通常的VHDL確立工作,還將每個(gè)進(jìn)程靜態(tài)地映射到特定的處理器上,計(jì)算的加載、通信頻帶的估算均來(lái)自于暫時(shí)性的分析與波形傳播分析,以幫助獲得合理的平衡的靜態(tài)映射。(3)VHDL的描述圍覆蓋系統(tǒng)級(jí)、算法級(jí)、寄存器傳輸級(jí)和門(mén)級(jí),具有連續(xù)性、完整性的特點(diǎn)。VHDL結(jié)構(gòu)描述方式與行為描述方式有機(jī)結(jié)合,各描述層次之間彼此銜接,協(xié)調(diào)一致。目前,較常用的大規(guī)模集成電路的設(shè)計(jì)方法包括基于標(biāo)準(zhǔn)單元庫(kù)的自底向上(bottom-up)的設(shè)計(jì)方法和自頂向下(top-down)便于早期優(yōu)化的設(shè)計(jì)方法,以與自底向上和自頂向下有機(jī)結(jié)合的設(shè)計(jì)方法。由于設(shè)計(jì)規(guī)模日益增大,設(shè)計(jì)復(fù)雜度急劇增加,傳統(tǒng)的設(shè)計(jì)起點(diǎn)偏重低層的方法,會(huì)因設(shè)計(jì)規(guī)模的龐大帶來(lái)極大的工作量。因此提高設(shè)計(jì)層次,注重早期優(yōu)化,是現(xiàn)行較好的設(shè)計(jì)方式。目前,設(shè)計(jì)對(duì)象整體的的設(shè)計(jì)過(guò)程經(jīng)歷多個(gè)層次。首先,在較高的抽象層次,進(jìn)行前期的概念設(shè)計(jì),優(yōu)化設(shè)計(jì)模型;然后經(jīng)由高級(jí)綜合工具綜合,產(chǎn)生寄存器傳輸級(jí)網(wǎng)表;最后經(jīng)低級(jí)綜合工具,形成最終的設(shè)計(jì)結(jié)果。因此,由于存在多層次設(shè)計(jì),就需要多個(gè)層次上的模擬。VHDL模擬器可以完成混合級(jí)模擬,為各個(gè)層次的硬件設(shè)計(jì)提供有效的模擬,反映設(shè)計(jì)意圖,供設(shè)計(jì)者調(diào)試其設(shè)計(jì),是適應(yīng)當(dāng)前電路設(shè)計(jì)的最佳選擇之一。編譯型模擬方法與VHDL與C++的類比模擬算法可分為解釋型和編譯型兩種。解釋型模擬器中存在一個(gè)模擬核心,它不斷讀取VHDL源描述或其編譯后的中間格式數(shù)據(jù),并每一條語(yǔ)句解釋性地執(zhí)行。它的優(yōu)點(diǎn)是概念清晰、關(guān)系明確,并且編程實(shí)現(xiàn)要簡(jiǎn)便一些;其明顯的缺點(diǎn)就是對(duì)每一條語(yǔ)句的每次執(zhí)行都要重新解釋并執(zhí)行,會(huì)帶來(lái)很多不必要的預(yù)處理,效率很低。編譯型模擬器將VHDL源描述直接轉(zhuǎn)化為功能等價(jià)的可執(zhí)行二進(jìn)制代碼,這樣,在每一條語(yǔ)句的模擬執(zhí)行過(guò)程中消除了多余的預(yù)處理,將極改善系統(tǒng)性能。編譯型模擬器將VHDL源描述轉(zhuǎn)換為功能等價(jià)的C++源代碼,這種方式主要是基于對(duì)VHDL和C++語(yǔ)言語(yǔ)法特點(diǎn)的比較后得出的。從語(yǔ)言層次上講,這兩種語(yǔ)言都屬于高級(jí)語(yǔ)言,在許多方面均具有相似性,可以從這種相似性出發(fā),完成它們之間的轉(zhuǎn)化。這些相似性主要體現(xiàn)在如下幾個(gè)方面:(1)VHDL中的實(shí)體(entity)與C++中的類(class)概念類似,對(duì)于VHDL中的任一實(shí)體,均可以將它翻譯成C++中的一個(gè)類.而與實(shí)體對(duì)應(yīng)的結(jié)構(gòu)體(architecture)則可以從前面的實(shí)體類中派生,這種它就可以共享在實(shí)體類中定義的所有數(shù)據(jù)。(2)VHDL中的進(jìn)程(process)繼續(xù)從相對(duì)應(yīng)的結(jié)構(gòu)體類中進(jìn)行派生,這樣它就可共享所有在結(jié)構(gòu)體中定義的數(shù)據(jù)。當(dāng)一個(gè)結(jié)構(gòu)體包含多個(gè)進(jìn)程時(shí),每一個(gè)進(jìn)程都是結(jié)構(gòu)的派生類,為了避免同一結(jié)構(gòu)體對(duì)象的重復(fù)定義,可以通過(guò)虛(virtual)基類的方式進(jìn)行派生。(3)VHDL中的端口概念可以映射到C++中的函數(shù)(包括構(gòu)造函數(shù))參數(shù),類屬則可以映射為函數(shù)的默認(rèn)參數(shù).(4)可以為一些VHDL特有的數(shù)據(jù)類型使用C++定義類的方式定義一個(gè)新的數(shù)據(jù)類型。例如VHDL中的信號(hào)(signal)可為其定義一個(gè)類QSignal,在類中保存信號(hào)的屬性值,例如上次信號(hào)變化的時(shí)間與值等。這樣,對(duì)于信號(hào)類型對(duì)象賦值的特殊性就可以通過(guò)等號(hào)運(yùn)算符的重載來(lái)解決。此外,信號(hào)的一些預(yù)定義屬性的運(yùn)算也可以轉(zhuǎn)化為對(duì)類對(duì)象的某個(gè)成員函數(shù)的調(diào)用求解過(guò)程。(5)VHDL的層次關(guān)系的實(shí)現(xiàn)方式主要由元件說(shuō)明、例示和組裝完成??梢詫?duì)應(yīng)于C++語(yǔ)言中的成員類對(duì)象的概念。對(duì)于不同構(gòu)造體的組裝,則可以在定義成員類對(duì)象時(shí),通過(guò)給出不同構(gòu)造函數(shù)的參數(shù)選取不同的結(jié)構(gòu)體。(6)VHDL行為描述中的幾種順序語(yǔ)句:變量賦值語(yǔ)句、if語(yǔ)句、case語(yǔ)句、loop語(yǔ)句、next語(yǔ)句、exit語(yǔ)句、return語(yǔ)句、null語(yǔ)句、assert語(yǔ)句、過(guò)程調(diào)用語(yǔ)句在C++語(yǔ)言中均有類似的語(yǔ)法或庫(kù)函數(shù),做少量的修改即可進(jìn)行轉(zhuǎn)換。VHDL在電子系統(tǒng)硬件設(shè)計(jì)中的優(yōu)點(diǎn)所謂硬件描述語(yǔ)句,就是可以描述硬件電路的功能、信號(hào)連接關(guān)系與定時(shí)關(guān)系的語(yǔ)言。它能比電原理圖更有效地表達(dá)硬件電路的特征。目前各ASIC芯片制造商都相繼開(kāi)發(fā)了用于各自目的的HDL語(yǔ)言,但是大多數(shù)未標(biāo)準(zhǔn)化和通用化。唯一已被公認(rèn)的硬件描述語(yǔ)言之一是美國(guó)國(guó)防部開(kāi)發(fā)的VHDL語(yǔ)言,它已成為IEEESTD_1076標(biāo)準(zhǔn)。許多公司研制的硬件電路設(shè)計(jì)工具也逐漸向VHDL語(yǔ)言靠攏,提供對(duì)VHDL的支持。VHDL在電子系統(tǒng)硬件設(shè)計(jì)中具有下列優(yōu)點(diǎn):(1)設(shè)計(jì)技術(shù)齊全、方法靈活、支持廣泛VHDL語(yǔ)言可以支持自頂至下和基于庫(kù)的設(shè)計(jì)方法,而且還支持同步電路、異步電路、FPGA以與其他隨機(jī)電路的設(shè)計(jì)。其圍之廣是其他HDL語(yǔ)言所不能比擬的。例如,SFL語(yǔ)言和UDL/I語(yǔ)言,它們只能描述同步電路。另外,VHDL語(yǔ)言早在1987年12月已作為IEEE_STD_1076標(biāo)準(zhǔn)公布開(kāi)發(fā),目前大多數(shù)EDA工具幾乎在不同程度上都支持VHDL語(yǔ)言.這給VHDL語(yǔ)言進(jìn)一步推廣和應(yīng)用創(chuàng)造了良好的環(huán)境。(2)系統(tǒng)硬件描述能力強(qiáng)如果所述,VHDL語(yǔ)言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的數(shù)學(xué)模型直到門(mén)級(jí)電路。另外,高層次的行為描述可以與低層次的RTL描述和結(jié)構(gòu)描述混合使用。例如,在PC擴(kuò)展槽上要設(shè)計(jì)一塊接口卡,該接口卡的硬件設(shè)計(jì)應(yīng)滿足主機(jī)的接口要求。此時(shí),主機(jī)部分功能可以用行為方式描述,在系統(tǒng)仿真時(shí)可以驗(yàn)證接口卡的工作是否正確。這樣,在接口卡設(shè)計(jì)出來(lái)以前就可以知道接口卡的工作是否滿足系統(tǒng)要求。VHDL語(yǔ)言能進(jìn)行系統(tǒng)級(jí)的硬件描述,這是它最突出的一個(gè)優(yōu)點(diǎn)。其他HDL語(yǔ)言,如UDL/I、Verilog等只能進(jìn)行IC級(jí)、PCB級(jí)描述,而不能對(duì)系統(tǒng)級(jí)的硬件很好地進(jìn)行描述。(3)VHDL語(yǔ)言可以與工藝無(wú)關(guān)編程在用VHDL語(yǔ)言設(shè)計(jì)系統(tǒng)硬件時(shí),沒(méi)有嵌入與工藝有關(guān)的信息。當(dāng)然,這樣的信息是可以用VHDL語(yǔ)言來(lái)編寫(xiě)的。與大多數(shù)HDL語(yǔ)言不同,采用VHDL語(yǔ)言設(shè)計(jì)時(shí),當(dāng)門(mén)級(jí)或門(mén)級(jí)以上層次的描述通過(guò)仿真檢驗(yàn)以后,再用相應(yīng)的工具將設(shè)計(jì)映射成不同的工藝(如MOS、CMOS等)。這樣,在工藝更新時(shí),無(wú)須修改原設(shè)計(jì)程序,只要改變相應(yīng)的映射工具就行了。由此可見(jiàn),修改電路和修改工藝相互之間不會(huì)產(chǎn)生影響.(4)VHDL語(yǔ)言標(biāo)準(zhǔn)、規(guī),易于共享和復(fù)用由于VHDL語(yǔ)言已作為一種IEEE的工業(yè)標(biāo)準(zhǔn),這樣,設(shè)計(jì)成果便于復(fù)用和交流,反過(guò)來(lái)也更進(jìn)一步推動(dòng)VHDL語(yǔ)言的推廣與完善。另外,VHDL語(yǔ)言的語(yǔ)法比較嚴(yán)格,其風(fēng)格類似于Ada語(yǔ)言,給閱讀和使用都帶來(lái)了極大的方便。第二章紅綠燈交通信號(hào)系統(tǒng)燈交通信號(hào)系統(tǒng)功能概述本論文設(shè)計(jì)的紅綠燈交通信號(hào)系統(tǒng)為模擬實(shí)際的十字路口交通信號(hào)燈。故外部硬件電路方面包括:兩組紅綠燈(配合十字路口的雙向指揮控制)、兩組七段顯示器(配合綠燈時(shí)倒計(jì)時(shí)顯示)、一組手動(dòng)與自動(dòng)控制開(kāi)關(guān)(針對(duì)交通警察指揮交通控制使用)。軟件方面:本論文將引進(jìn)(1)電路模塊合成的概念:將紅綠燈交通信號(hào)系統(tǒng)劃分成若干小電路,最后再寫(xiě)一個(gè)VHDL程序代碼,將各個(gè)小電路相連接。好處是可以增加程序的調(diào)試速度,同時(shí)也能夠?qū)⒐ぷ骷?xì)分以提高編程速度。(2)參數(shù)化(parametric)的概念:針對(duì)不同的時(shí)段,交警可以調(diào)整紅綠燈電路(增加或減少電路的計(jì)數(shù)時(shí)間),以增加程序的靈活性。綠燈交通信號(hào)系統(tǒng)外觀紅綠燈交通信號(hào)系統(tǒng)外觀示意圖如圖2-1綠燈交通信號(hào)系統(tǒng)的VHDL模塊該系統(tǒng)由4個(gè)子電路構(gòu)成。(1)clk_gen:時(shí)鐘脈沖發(fā)生電路(即分頻電路);(2)traffic_mux:計(jì)數(shù)秒數(shù)選擇電路;(3)count_down:倒計(jì)時(shí)控制電路;(4)traffic_fsm:紅綠燈信號(hào)控制電路。其中主要的交通燈控制邏輯圖,如圖2所示。2.4紅綠燈交通信號(hào)系統(tǒng) VHDL程序2.4.1clk_gen時(shí)鐘發(fā)生電路(即分頻電路)的VHDL設(shè)計(jì)在紅綠燈交通信號(hào)系統(tǒng)中,大多數(shù)的情況是通過(guò)自動(dòng)控制的方式指揮交通的。因此,為了避免意外事件的發(fā)生,電路必須給一個(gè)穩(wěn)定的時(shí)鐘(clock)才能讓系統(tǒng)正常運(yùn)行。但為了配合高峰時(shí)段,防止交通擁擠,有時(shí)也必須使用手動(dòng)控制,即讓交警能夠順利地指揮交通。clk_gen電路最主要的功能就是產(chǎn)生一些額外的輸出信號(hào),并將其用做后續(xù)幾個(gè)電路的使能(enable)控制與同步信號(hào)處理。(1).entity模塊程序代碼表2.1列出entity模塊的程序代碼表2.1entity模塊的VHDL碼libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityclk_genisport(teset:instd_logic;clk:instd_logic;ena_scan:outstd_logic;ena_1hz:outstd_logic;flash_1hz:outstd_logic);end;(2).architecture模塊表2.2列出architecture模塊的程序代碼。表2.2architecture模塊的VHDL碼--definethesignal_structuresndflowofthedevicearchitecturebehaviorofclk_genisconstantscan_bit:positive:=2;constantscan_val:positive:=4;constanttwo_hz_bit:positive:=7;constanttwo_hz_val:positive:=125;signalclk_scan_ff:std_logic_vector(scan_bit-1downto0);signalclk_2hz_ff:std_logic_vector(two_hz_bit_downto0);signalena_s:std_logic;signalena_one:std_logic;signalena_two:std_logic;begin表2.2中引用了常數(shù)對(duì)象(constant)。借助使用常數(shù),可以更改此常數(shù)的值并且重新編譯,而所有使用到該常數(shù)的地方都會(huì)隨著更新而使用新的常數(shù)值。例如:constantscan_bit:positive:=value;signalclk_scan_ff:std_logic_vector(scan_bit-1downto0);第一行是將scan_bit設(shè)為常數(shù)對(duì)象,而value為一個(gè)可變的值,根據(jù)使用者的需求而定。第二行是定義一個(gè)信號(hào)線名稱為clk_scan_ff,而位數(shù)為(scan_bit-1downto0),已知scan_bit被定義為2,故clk_scan_ff的位數(shù)就是(1downtoo)即為2bit。因此日后若需要更改電路時(shí),只需改變常數(shù)對(duì)象scan_bit的值即可。這樣程序設(shè)計(jì)變得更有彈性,此為參數(shù)化的概念。(3).clk_gen分頻電路模塊表2.3列出clk_gen電路中產(chǎn)生ena_scan輸出使能的程序代碼。表2.3clk_gen電路中產(chǎn)生enascan輸出使能的VHDL碼--togenerate250hzena_scanviadividing1khzclockby4scan:process(reset,clk)beginifreset=‘1’thenclk_scan_ff<=“00”;ena_s<=‘0’;elsif(clk‘ventandclk=‘1’)thenifclk_scan_ff>=scan_val-1thenclk_scan_ff<=”00”;ena_s<=‘1’;elseclk_scan_ff<=clk_scan_ff+1;ena_s<=‘0’;endif;endif;endprocess;ena_scan<=ena_s;表2.4列出clk_gen電路中產(chǎn)生ena_1hz,flash_1hz輸出使能的程序代碼。表2.4clk_gen電路中產(chǎn)生ena_1hz,flash_1hz輸出使能的VHDL碼——togenerate1hzena_1hzandflash_1hzviadividing1hzclockbytwo_hz:process(reset,clk,ena_s)beginifreset=‘1’thenena_two<=‘0’;ena_two<=‘0’;clk_2hz_ff<=“0000000”;elsif(clk‘eventandclk=‘1’)thenifena_s=‘1’thenifclk_2hz_ff>=two_hz_val-1thenclk_2hz_ff<,=“0000000”;ena_two<=‘1’;ena_one<=notena_one;elseclk_2hz_ff<=clk_2hz_ff+1;ena_two<=‘0’;ena_one<=ena_onee;endif;endif;endif;endprocess;ena_1hz<=ena__oneandena_twoandena_s;flash_1hz<=ena_one;2.4.2traffic_mux計(jì)數(shù)秒數(shù)選擇電路的VHDL程序設(shè)計(jì)當(dāng)過(guò)馬路的時(shí)候,綠燈的一方有時(shí)會(huì)附加一個(gè)顯示器告訴行人,目前還剩下幾秒信號(hào)燈將變成紅燈。因此,traffic_mux電路最主要的功能就是負(fù)責(zé)輸出顯示器需要的值(即倒數(shù)的秒數(shù)值),作為倒數(shù)顯示器電路(count_downcircuit)的計(jì)數(shù)秒數(shù)。(1).entity模塊表2.5列出entity模塊的程序代碼。表2.5entity模塊的VHDL碼libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitytraffic_muxisport(reset:instd_logic;clk:instd_logic;ena_scan:instd_logic;recount:instd_logic;sign_state:instd_logic_vector(1downto0);load:outstd_logic_vector(7downto0);end;(2).architecture模塊此處,我們定義一些進(jìn)程(process)間整體共享的電路部傳遞信號(hào),以整合所有功能。表2.6列出architecture模塊的程序代碼。表2.6architecture模塊的VHDL碼--definethesignal_structureandflowofthedevicearchitecturebehavioroftraffic_muxisconstantyellow0_time:integer:=5;constantgreen0_time:integer:=20;constantyellow1_time:integer:=5;constantgreen1_time:integer:=20;begin此處,定義yellow0_time(橫向路口的黃燈)需維持5Ss,green0_time(橫向路口的綠燈)需維持20s,yellow1_time(直向路口的黃燈)需維持5s,green1_time(直向路口的綠燈)需維持20s。表2.7列出traffic_mux電路的程序代碼。表2.7traffic-mux電路(產(chǎn)生輸出計(jì)數(shù)秒數(shù))的VHDL碼--togenerateavalueofcounterbyloadload_time:process(teset,clk)]beginifreset=‘1’THENload<=“00000000”;elsif(clk‘eventandclk=‘1’)thenif(ena_scan=‘1’andrecount=‘1’)thencasesign_stateiswhen“00”=>load<=conv_std_logic_vector(green1_time,8);when“01”=>load<=conv_std_logic_vector(yellow0_time,8);when“10”=>load<=conv_std_logic_vector(green0_time,8);whenothers=>.load<=conv_std_logic_vector(yellow1_time,8);endcase;endif;endif;endprocess;2.4.3count_down倒計(jì)時(shí)控制電路的VHDL程序設(shè)計(jì)當(dāng)過(guò)馬路的時(shí)候,綠燈的一方有時(shí)會(huì)附加一個(gè)顯示器告訴行人,目前還剩下幾秒信號(hào)燈將變成紅燈。因此,count_down電路最主要的功能就是負(fù)責(zé)接收traffic_mux電路輸出的值(即倒數(shù)的秒數(shù)值),然后將其轉(zhuǎn)換成BCD碼,利用七段顯示器顯示出來(lái),讓行人能清楚地知道再過(guò)多久就會(huì)變成紅燈。(1).entity模塊表2.8列出entity模塊的程序代碼。表2.8entity模塊的VHDL碼libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycount_downisport(reset:instd_logic;clk:instd_logic;ena_one:instd_logic;recount:instd_logic;ioad:instd_logic_vector(7downto0);seg7:outstd_logic_vector(15downto0);next_state:outstd_logic);end;(2).architecture模塊表2.9列出architecture模塊的程序代碼。表2.9architecture的VHDL碼--definethesignal_structureandflowofthedevicearchitecturebehaviorofcount_downissignalt_ff:std_logic_vector(7downto0);begin(3).count_down電路的模塊表2.10列出count_down模塊的程序代碼。表2.10count-down電路(產(chǎn)生輸出計(jì)數(shù)秒數(shù))的VHDL碼--產(chǎn)生一個(gè)脈沖信號(hào)(next_staset)當(dāng)cnt_ff計(jì)數(shù)到1時(shí)count:process(clk,reset)beginif(reset=‘1’)thent_ff<=“00000000”;seg7<=“”;elsif(clk‘eventandclk=‘1’)thenifena_1hz=‘1’thenif(recount=‘1’)thent_ff<=load-1;elset_ff<=cnt_ff-1;endif:endif;caseconv_integer(cnt_ff)iswhen0=>seg7(15downto0)<=“11111”;when1=>seg7(15downto0)<=“00110”;when2=>seg7(15downto0)<=“11011”;when3=>seg7(15downto0)<=“01111”;when4=>seg7(15downto0)<=“00110”;when5=>seg7(15downto0)<=“01101”;when6=>seg7(15downto0)<=“11101”;when7=>seg7(15downto0)<=“00111”;when8=>seg7(15downto0)<=“11111”;when9=>seg7(15downto0)<=“11011”;when10=>seg7(15downto0)<=“11111”;when11=>seg7(15downto0)<=“00110”;when12=>seg7(15downto0)<=“11011”;when13=>seg7(15downto0)<=“01111”;when14=>seg7(15downto0)<=“00110”;when15=>seg7(15downto0)<=“01101”;when16=>seg7(15downto0)<=“11101”;when17=>seg7(15downto0)<=“00111”;when18=>seg7(15downto0)<=“11111”;when19=>seg7(15downto0)<=“11011”;when20=>seg7(15downto0)<=“11111”;when21=>seg7(15downto0)<=“00110”;when22=>seg7(15downto0)<=“11011”;when23=>seg7(15downto0)<=“01111”;when24=>seg7(15downto0)<=“00110”;when25=>seg7(15downto0)<=“01101”;when26=>seg7(15downto0)<=“11101”;when27=>seg7(15downto0)<=“00111”;when28=>seg7(15downto0)<=“11111”;when29=>seg7(15downto0)<=“11011”;endcase;endif;endprocess;next_state<=‘1’whent_ff=1else‘0’2.4.4traffic_fsm紅綠燈信號(hào)控制電路的VHDL程序設(shè)計(jì)在紅綠燈交通信號(hào)系統(tǒng)中,大多數(shù)的情況是通過(guò)自動(dòng)控制的方式指揮交通的。但為了配合高峰時(shí)段,防止交通擁擠,有時(shí)還必須使用手動(dòng)控制,即讓交警自行指揮交通。因此,traffic_fsm電路除了負(fù)責(zé)監(jiān)控路口紅綠燈之外,最主要的功能就是能夠利用開(kāi)關(guān)來(lái)切換手動(dòng)與自動(dòng)的模式,讓交警能夠通過(guò)外部輸入的方式來(lái)控制紅綠燈交通信號(hào)系統(tǒng)的運(yùn)行。(1).entity模塊表2.11列出entity模塊的程序代碼。表2.11entity模塊的VHDL碼libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytraffic_fsmisport(reset:instd_logic;clk:instd_logic;]ena_scan:instd_logic;ena_1hz:instd_logic;flash_1hz:instd_logic;a_m:instd_logic;st_butt:instd_logic;next_state:instd_logic;recount:outstd_logic;sign_state:outstd_logic_vector(1downto0);red:outstd_logic_vector(1downto0);green:outstd_logic_vector(1downto0);yellow:outstd_logic_vector(1downto0);end;(2).architecture模塊表2.12列出architecture模塊的程序代碼。表2.12architecture的VHDL碼--definethesignal_structureandflowofthedevicearchitecturebehavioroftraffic_fsmistypesreg0_typeis(r0gl,r0y1,g0r1,y0r1,y0y1,y0g1,g0y1,r0r1);signalstate:sreg0_type;signalst_transfer:std_iogic;signallight:std_iogic_vector(5downto0);--r(10)y(10)g(10)begin類別的定義格式如下:typetype_nameistype_mark;例如:typesreg0_typeis(r0g1,r0y1,g0r1,y0r1,y0y1,y0g1,g0y1,r0r1);signalstate:sreg0_type;第一行是將所有紅綠燈交通信號(hào)系統(tǒng)發(fā)生的狀況利用類別(type)的定義格式一一列舉出來(lái)(表2.12中共定義了8種狀況)。第二行是定義一個(gè)信號(hào)線名稱為state,state的設(shè)置目的是將steg0_type定義的8種狀況轉(zhuǎn)換成位的方式表示。表2.13列出traffic_fsm電路中抖動(dòng)消除裝置進(jìn)程的程序代碼表2.13traffic-fsm電路中抖動(dòng)消除裝置(debounce)的VHDL碼--togeneratedebouncecircuitdebounce:process(reset,clk,ena_scan,st_butt)variablerebn_ff:std_logic_vector(5downto0);beginif(st_butt=‘1’orreset=‘1’)thenrebn_ff:=“111111”;st_transfer<=‘0’;elsif(clk‘eventandclk=‘1’)thenif(ena_scan=‘1’)thenif(rebn_ff>=3)thenrebn_ff:=rebn_ff-1;st_transfer<=‘0’;elsif(rebn_ff=2)thenrebn_ff:=rebn_ff-1;st_transfer<=‘1’;elserebn_ff:=rebn_ff;st_transfer<=‘0’;endif;endif;endif;endprocess;表2.13所示的是抖動(dòng)消除裝置進(jìn)程,其重點(diǎn)在于st_transfer何時(shí)為1。當(dāng)外部按下st_butt鍵時(shí)(即st_butt=0),部的計(jì)數(shù)器rebn_ff開(kāi)始計(jì)數(shù),在rebn_ff尚未數(shù)到02時(shí),st_butt鍵被松開(kāi),那么狀態(tài)將不會(huì)改變。假如是由于電器效應(yīng)引起開(kāi)關(guān)誤動(dòng)作,開(kāi)關(guān)抖動(dòng)的速度是非??斓模s小于1ms),故電路不會(huì)有誤動(dòng)作的產(chǎn)生,也就達(dá)到了設(shè)計(jì)這個(gè)抖動(dòng)消除裝置的目的。2.5建造一個(gè)屬于自己的程序包(package)編寫(xiě)過(guò)程序的人都知道,在程序設(shè)計(jì)語(yǔ)言(如:VB,VC)中,程序的開(kāi)始總會(huì)調(diào)用庫(kù)(library)來(lái)提供設(shè)計(jì)程序時(shí)所需的基本命令。但是,如果要進(jìn)一步設(shè)計(jì)較復(fù)雜的程序時(shí),庫(kù)中的命令可能就無(wú)法支持了。因此,設(shè)計(jì)者可以設(shè)計(jì)一個(gè)子程序來(lái)支持程序設(shè)計(jì)的需求。上述的情形在硬件描述語(yǔ)言(如:VHDL,Verilog)的設(shè)計(jì)上也存在同樣的問(wèn)題。在VHDLZ中的第一行(libraryieee;)就是要使用IEEE設(shè)計(jì)好的庫(kù)文件,但如果要使用的組件并不在庫(kù)中時(shí)就只好自己定義了。在這一節(jié)中介紹如何將紅綠燈交通信號(hào)系統(tǒng)中的4個(gè)子電路放進(jìn)自己定義的程序包中。表2.14列出該程序包的代碼。表2.14程序包的VHDL程序--declaractionofpackagetraffic_libincludingcomponent“clk_gen”--“traffic_mux”“count_down”“traffic_fsm”libraryieee;useieee.std_logic_1164.all;packagetraffic_libiscomponentclk_genport(reset:instd_logic;clk:instd_logic;ena_scan:outstd_logic;ena_1hz:outstd_logic;flash_1hz:outstd_logic);endcomponent;componenttraffic_muxport(reset:instd_logic;clk:instd_logic;ena_scan:instd_logic;recount:instd_logic;sign_state:instd_logic_vector(1downto0);load:outstd_logic_vector(7downto0));endcomponent;componentcount_downport(reset:instd_logic;clk:instd_logic;ena_1hz:instd_logic;recount:instd_logic;load:instd_logic_vector(7downto0);seg7:outstd_logic_vector(15downto0);next_state:outstd_logic);endcomponent;componenttraffic_fsmport(reset:instd_logic;clk:instd_logic;ena_scan:instd_logic;ena_1hz:instd_logic;flash_1hz:instd_logic;a_m:instd_logic;st_butt:instd_logic;next_state:instd_logic;recount:outstd_logic;sign_state:outstd_logic_vector(1downto0);red:outstd_logic_vector(1downto0);green:outstd_logic_vector(1downto0);yellow:outstd_logic_vector(1downto0);endcomponent;endtraffic_lib;2.5.1traffic紅綠燈信號(hào)系統(tǒng)電路的VHDL程序設(shè)計(jì)本節(jié)所要做的工作就是將所有的子電路全部連接起來(lái),進(jìn)行時(shí)序分析,當(dāng)程序完成后,再下載到FPGA,以便硬件電路的驗(yàn)證工作。首先必須先完成將4個(gè)子電路連接起來(lái)的VHDL程序編寫(xiě)工作。(1).entity模塊表2.15列出entity模塊的程序代碼。表2.15entity模塊的VHDL碼libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;usework.traffic_lib.all;entitytrafficisport(reset:instd_logic;clk:instd_logic;a_m:instd_logic;st_butt:instd_logic;recount:outstd_logic;next_state:outstd_logic;sign_state:outstd_logic_vector(1downto0);red:outstd_logic_vector(1downto0);green:outstd_logic_vector(1downto0);yellow:outstd_logic_vector(1downto0);seg7:outstd_logic_vector(15downto0);end;(2).architecture模塊表2.16列出architecture模塊的程序代碼。表2.16architecture模塊的VHDL碼--definethesignal_structureandflowofthedevicearchitecturebehaveoftrafficissignalena_scan_1:std_logic;signalena_1hz_1:std_logic;signalflash_1hz_1:std_logic;signalrecount_1:std_logic;signalnext_state_1:std_logic;signalsign_state_1:std_logic

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論