基于EDA技術交通信燈設計_第1頁
基于EDA技術交通信燈設計_第2頁
基于EDA技術交通信燈設計_第3頁
基于EDA技術交通信燈設計_第4頁
基于EDA技術交通信燈設計_第5頁
已閱讀5頁,還剩50頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于EDA技術交通信號燈設計 1 EDA技術及VHDL語言介紹11 概述EDA是電子設計自動化Electronic Design Automation縮寫是90年代初從CAD計算機輔助設計CAM計算機輔助制造CAT計算機輔助測試和CAE計算機輔助工程的概念發展而來的EDA技術是以計算機為工具根據硬件描述語言HDL Hardware Description language完成的設計文件自動地完成邏輯編譯化簡分割綜合及優化布局布線仿真以及對于特定目標芯片的適配編譯和編程下載等工作典型的EDA工具中必須包含兩個特殊的軟件包即綜合器和適配器綜合器的功能就是將設計者在EDA平臺上完成的針對某個系統項目

2、的HDL原理圖或狀態圖形描述針對給定的硬件系統組件進行編譯優化轉換和綜合最終獲得我們欲實現功能的描述文件綜合器在工作前必須給定所要實現的硬件結構參數它的功能就是將軟件描述與給定的硬件結構用一定的方式聯系起來也就是說綜合器是軟件描述與硬件實現的一座橋梁綜合過程就是將電路的高級語言描述轉換低級的可與目標器件FPGACPLD相映射的網表文件適配器的功能是將由綜合器產生的王表文件配置與指定的目標器件中產生最終的下載文件如JED文件適配所選定的目標器件FPGACPLD芯片必須屬于在綜合器中已指定的目標器件系列硬件描述語言HDL是相對于一般的計算機軟件語言如CPASCAL而言的HDL語言使用與設計硬件電子

3、系統的計算機語言它能描述電子系統的邏輯功能電路結構和連接方式設計者可利用HDL程序來描述所希望的電路系統規定器件結構特征和電路的行為方式然后利用綜合器和適配器將此程序編程能控制FPGA和CPLD內部結構并實現相應邏輯功能的的門級或更底層的結構網表文件或下載文件目前就FPGACPLD開發來說比較常用和流行的HDL主要有ABEL-HDLAHDL和VHDL從目前的EDA技術來看其發展趨勢是政府重視使用普及應用廣泛工具多樣軟件功能強大中國EDA市場已漸趨成熟不過大部分設計工程師面向的是PCB制板和小型ASIC領域僅有小部分約11的設計人員開發復雜的片上系統器件為了與臺灣和美國的設計工程師形成更有力的競

4、爭中國的設計隊伍有必要引進和學習一些最新的EDA技術 在信息通信領域要優先發展高速寬帶信息網深亞微米集成電路新型元器件計算機及軟件技術第三代移動通信技術信息管理信息安全技術積極開拓以數字技術網絡技術為基礎的新一代信息產品發展新興產業培育新的經濟增長點要大力推進制造業信息化積極開展計算機輔助設計CAD計算機輔助工程CAE計算機輔助工藝CAPP計算機機輔助制造CAM產品數據管理PDM制造資源計劃MRPII及企業資源管理ERP等有條件的企業可開展網絡制造便于合作設計合作制造參與國內和國際競爭開展數控化工程和數字化工程自動化儀表的技術發展趨勢的測試技術控制技術與計算機技術通信技術進一步融合形成測量控制

5、通信與計算機M3C結構在ASIC和PLD設計方面向超高速高密度低功耗低電壓方面發展 外設技術與EDA工程相結合的市場前景看好如組合超大屏幕的相關連接多屏幕技術也有所發展中國自1995年以來加速開發半導體產業先后建立了幾所設計中心推動系列設計活動以應對亞太地區其它EDA市場的競爭在EDA軟件開發方面目前主要集中在美國但各國也正在努力開發相應的工具日本韓國都有ASIC設計工具但不對外開放中國華大集成電路設計中心也提供IC設計軟件但性能不是很強相信在不久的將來會有更多更好的設計工具在各地開花并結果據最新統計顯示中國和印度正在成為電子設計自動化領域發展最快的兩個市場年夏合增長率分別達到了50和30 E

6、DA技術發展迅猛完全可以用日新月異來描述EDA技術的應用廣泛現在已涉及到各行各業EDA水平不斷提高設計工具趨于完美的地步EDA市場日趨成熟但我國的研發水平仍很有限尚需迎頭趕上硬件描述語言HDL是一種用于設計硬件電子系統的計算機語言它用軟件編程的方式來描述電子系統的邏輯功能電路結構和連接形式與傳統的門級描述方式相比它更適合大規模系統的設計例如一個32位的加法器利用圖形輸入軟件需要輸人500至1000個門而利用VHDL語言只需要書寫一行ABC即可而且 VHDL語言可讀性強易于修改和發現錯誤早期的硬件描述語言如ABELHDLAHDL由不同的EDA廠商開發互不兼容而且不支持多層次設計層次間翻譯工作要由

7、人工完成為了克服以上不足1985年美國國防部正式推出了高速集成電路硬件描述語言VHDL1987年IEEE采納VHDL為硬件描述語言標準IEEE STD1076 VHDL是一種全方位的硬件描述語言包括系統行為級寄存器傳輸級和邏輯門級多個設計層次支持結構數據流和行為三種描述形式的混合描述因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能整個自頂向下或由底向上的電路設計過程都可以用VHDL來完成VHDL還具有以下優點1VHDL的寬范圍描述能力使它成為高層進設計的核心將設計人員的工作重心提高到了系統功能的實現與調試而花較少的精力于物理實現2VHDL可以用簡潔明確的代碼描述來進行復雜控制邏輯艄設計靈活且方便

8、而且也便于設計結果的交流保存和重用3VHDL的設計不依賴于特定的器件方便了工藝的轉換4VHDL是一個標準語言為眾多的EDA廠商支持因此移植性好VHDL語言設計其硬件時與傳統的電路設計方法相比較具有如下的特點第一采用自上而下的設計方法即從系統總體要求出發自上而下地逐步將設計的內容細化最后完成系統硬件的整體設計在設計的過程中對系統自上而下分成三個層次進行設計第一層次是行為描述所謂行為描述實質上就是對整個系統的數學模型的描述一般來說對系統進行行為描述的目的是試圖在系統設計的初始階段通過對系統行為描述的仿真來發現設計中存在的問題在行為描述階段并不真正考慮其實際的操作和算法用何種方法來實現而是考慮系統的

9、結構及其工作的過程是否能到達系統設計的要求第二層次是RTL方式描述這一層次稱為寄存器傳輸描述又稱數據流描述如前所述用行為方式描述的系統結構的程序其抽象程度高是很難直接映射到具體邏輯元件結構的要想得到硬件的具體實現必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序也就是說系統采用RTL方式描述才能導出系統的邏輯表達式才能進行邏輯綜合第三層次是邏輯綜合即利用邏輯綜合工具將RTL方式描述的程序轉換成用基本邏輯元件表示的文件門級網絡表此時如果需要可將邏輯綜合的結果以邏輯原理圖的方式輸出此后可對綜合的結果在門電路級上進行仿真并檢查其時序關系第二應用邏輯綜合工具產生的門級網絡表將其

10、轉換成PLD的編程碼點即可利用PLD實現硬件電路的設計由自上而下的設計過程可知從總體行為設計開始到最終的邏輯綜合每一步都要進行仿真檢查這樣有利于盡早發現設計中存在的問題從而可以大大縮短系統的設計周期第三系統可大量采用PLD芯片由于目前眾多制造PLD芯片的廠家其工具軟件均支持VHDL語言的編程所以利用VHDL語言設計數字系統時可以根據硬件電路的設計需要自行利用PLD設計自用的ASIC芯片而無須受通用元器件的限制第四采用系統早期仿真從自上而下的設計過程中可以看到在系統設計過程中要進行三級仿真即行為層次仿真RTL層次仿真和門級層次仿真這三級仿真貫穿系統設計的全過程從而可以在系統設計的早期發現設計中存

11、在的問題大大縮短系統設計的周期節約大量的人力和物力自頂而下的設計方法使系統被分解為各個模塊的集合之后可以對設計的每個獨立模塊指派不同的工作小組這些工作小組可以工作在不同地點甚至可以分屬于不同的單位最后將不同的模塊集成為最終的系統模型并對其進行綜合測試和評價4其自頂而下的設計流程如圖1-1所示圖1-1 自頂而下的設計流程14 Pull II開發平臺系統com Pull II簡介Pull II的全稱是Multiple Array and Programmable Logic Use System2多陣列矩陣及可編程邏輯用戶系統2是Altera公司的全集成化可編程邏輯設計環境IIAltera公司的開

12、發工具軟件在發展中不斷完善PLUS II的版本不升級功能也越來越強大目前發行的PLUS II已經到了101版Pull II的界面友好在線幫助完備初學者也可以很快學習掌握完成高性能的設計在進行原理圖輸入時可以直接放置74系列邏輯芯片所以對于普通愛好者來說即使不使用Altera的可編程器件也可以把PLUS II作為邏輯仿真工具另外不用搭建硬件電路即可對自己的設計進行調試支持Altera公司不同結構的可編程邏輯器件能滿足用戶各種各樣的設計需要plus II具有突出的靈活性與高效性為設計者提供了多種可自由選擇的設計方法和工具PLUS II的編譯核心支持Altera的FLEX 10KFLEX 8K900

13、07000FLASHlogic5000Classic系列可編程邏輯器件 PLUS II的設計輸入處理與校驗功能一起提供了全集成化的一套可編程邏輯開發工具可加快動態調試縮短開發周期 PLUS II支持各種HDL設計輸入包括VHDLVerilog和Altera的AHDL PLUS II可與其他工業標準設計輸入綜合與校驗工具鏈接與CAE工具的接口符合EDIF200和209參數化模塊庫LPMVerilogVHDL及其它標準設計者可使用Altera或標準CAE設計輸入工具去建立邏輯設計使用PLUS II編譯器對Altera器件設計進行編譯并使用Altera或其它CAE校驗工具進行器件或板級仿真PLUS

14、II支持與SynopsysViewlogicMentor GraphicsCadenceExemplarData IOIntergraphMincOrCAD等公司提供的工具接口圖1-2 PLUSII軟件的設計流程圖2 交通燈系統設計21 交通燈設計背景及方案隨著城市汽車保有量的越來越多城市的交通擁擠問題正逐漸引起人們的注意交通燈是交管部門管理城市交通的重要工具提高十字路口的通行效率對緩解交通阻塞具有十分重要的現實意義實現路口交通燈系統控制的方法很多可以用標準邏輯器件可編程序控制器PLC單片機等方案來實現但是這些控制方法的功能修改及調試都需要硬件電路的支持在一定程度上增加了設計難度采用EDA技術

15、應用VHDL硬件電路描述語言實現變通燈系統控制器的設計利用PLUS集成開發環境進行綜合仿真并下載到CPLD可編程邏輯器件中完成系統的控制作用該燈控制邏輯可實現3種顏色燈的交替點亮時間的倒計時指揮車輛和行人安全通行A 方向是主干道車流量大因此A方向通行的時間應比B 方向長一些其示意圖如圖2-1所示 圖2-1 交通路口指示燈示意圖交通燈控制器的狀態轉換如表1 所示表中1 表示燈亮0 表示燈滅A 方向和B 方向的紅黃綠和左拐燈分別用R1 Y1G1 L1 和R2 Y2 G2 L2 來表示從狀態轉換表中可以看出每個方向四種燈依次按如下綠燈黃燈左拐燈黃燈紅燈并且每個方向紅燈亮的時間應該與另一方向綠拐黃燈亮

16、的時間相等黃燈所起的作用是用來在綠燈和左拐燈后進行緩沖以提醒行人該方向馬上要禁行了例如A 方向的控制程序描述如表2-1所示表2-1 交通燈控制器狀態轉換A方向B方向綠燈G1黃燈Y1左拐燈L1紅燈R1綠燈G2黃燈Y2左拐燈L2紅燈R2100000010100000100100001010000010001100000010100000100100001010023 交通燈控制器的VHDL設計使用PLUS II進行設計包括四個階段設計輸入設計處理設計驗證和器件編程在PLUS環境下進行編譯與仿真用VHDL語言對各個模塊進行編程最后形成頂層文件在PLUS環境下進行編譯與仿真檢查所編程序是否運行正確如果

17、出現錯誤需要進行修改直到完全通過為止需要說明的是在進行程序編譯時要先從底層程序開始所有底層程序都正確后才能開始頂層程序的編譯這是因為頂層程序是對底層程序的概括它是把底層程序各個模塊連接起來相當于把每個模塊的功能匯聚到一起實現整個系統的控制功能所以底層程序的正確與否關系到頂層程序的運行圖2-2 分頻器模塊的時序仿真波形時序仿真說明 1 reset1則clk_cnt1clk_cnt2clk_s1clk_s2clk_f清零2 reset0clk_1k為上升沿觸發時如果clk_cnt1大于或等于5時清零clk_cnt1并且clk_s1輸出1否則clk_cnt1加一clk_s1等于03reset0clk

18、_1k為上升沿觸發并且clk_s11時如果clk_cnt2大于或等于200時clk_cnt2清零輸出clk_s21取反clk_f否則clk_cnt2加一clk_s2clk_f保持不變其中clkflash是clk頻率的12倍它是通過內部信號與運算的得來即clk_flash clk_s1 and clk_s2 and clk_fcom 計數器模塊 com1 原理及功能計數器是對一個輸入脈沖進行計數如果輸入脈沖的頻率一定則記錄一定個數的脈沖其所需的時間是一定的elsif clkevent and clk 1 then 時鐘信號if hold 1 then 禁止信號cnt1 cnt1cnt2 cnt2

19、elsif recount 1 then 采集到的交通燈控制信號采集下cnt1 din1 一個計數值cnt2 din2else cnt1 cnt1-1 減計數cnt2 cnt2-1end ifcom2 時序仿真圖2-3 計數器模塊的時序仿真波形時序仿真說明1reset1清零cnt1 cnt2next_slast_f2reset0 clk為上升沿觸發時如果hold1時計數器處于禁止狀態cnt1cnt2保持不變輸出不變3reset0 clk為上升沿觸發時且hold0那么如果recount1時則采集下一個計數數值4reset0 clk為上升沿觸發時且hold0recount0時cnt1cnt2進行減

20、一運算并doutcnt輸出5當cnt10或cnt20時則next_sa 1否則next_sa 06當cnt13或cnt23時則last_f 1否則last_f 0com 計數器控制器模塊com1 原理及功能計數器控制器通過給計數器賦值控制計數器實現減計數從而達到倒記時的目的同時和計數器配合控制閃爍模塊計數器控制器是通過硬件描述語言case語句來實現不同狀態的選擇控制計數器控制器模塊有三個輸入端子recount是交通燈控制器控制計數器控制器是否進行計數狀態轉換的信號reset是內部復位信號用來復位內部信號sign_s是狀態選擇控制端輸出端Load賦值給計數器計數值flash_addr和計數器的f

21、lash共同作用控制閃爍模塊的閃爍功能7com2 時序仿真圖2-4 計數器控制器模塊時序仿真波形時序仿真說明1reset1則load1load2清零2reset0 clk為上升沿觸發且 recount1時1 若sign_s1XXXXXXXXXX1則load1 conv_std_logic_vector 278 load2 conv_std_logic_vector 278 flash_addr "00"2 若sign_s1則load1 conv_std_logic_vector 238 load2 conv_std_logic_vector 238 flash_addr &

22、quot;00"3 若sign_s0 則load1 conv_std_logic_vector 188 load2 conv_std_logic_vector 188 flash_addr "00"4 若sign_s0則load1 conv_std_logic_vector 358 load2 conv_std_logic_vector 358 flash_addr "00"com 交通燈控制器的設計com1 原理及功能交通燈控制器控制過程分為八個階段對應的有四個狀態分別用abcd表示a狀態A方向的綠燈亮左轉燈紅燈黃燈都滅B方向的紅燈亮綠燈黃燈

23、左轉燈都滅此時A方向上的車輛可直行或者各自右轉行人可以橫穿B路口方向上車和行人禁止通行直到計數器計數時間到由a狀態轉到b狀態b狀態方向的黃燈亮綠燈左轉燈紅燈滅方向的交通燈保持原狀態此時方向上的車輛要開始停止通行行人可繼續穿行方向的車輛行人保持原狀態直到計數器計時時間到由b狀態轉到c狀態c態方向的左轉燈亮綠燈黃燈紅燈滅方向的交通燈保持原狀態此時方向上的車輛各自左轉直行和右轉車輛禁止通行行人可繼續穿行方向的車輛和行人保持原狀態直到計數器計時時間到由c狀態轉到d狀態d狀態方向上的黃燈亮綠燈左轉燈紅燈滅方向的交通燈保持原狀態此時方向上的車輛和行人要開始停止通行方向的車輛行人保持原狀態直到計數器計時時間

24、到由d態轉到下個狀態到此方向上的交通燈開始變化依次重復方向上abcd四個狀態的轉換當方向上的四個狀態循環完成后方向再次重復方向上abcd四個狀態的轉換交通燈主要控制程序為when a if a_m 1 then 交通燈處于自動狀態時 if next_state 1 then 采集到計數器計數到零時反饋信號recount 1state b sign_state "1XXXXXXXXXX1"else recount 0 state a end ifelsif a_m 0 then 交通燈處于手動狀態時 if h_butt 1 then 手動狀態轉換控制信號 recount 1

25、state b sign_state "1XXXXXXXXXX1" else recount 0 state a end ifend ifcom2 時序仿真圖2-5 交通燈控制器模塊時序仿真波形時序仿真說明1Reset1則state asign_state "01XXXXXXXXXX"recount 12Reset0clk為上升沿觸發如果hold1則交通燈控制器出與禁止狀態此時所有路口的紅綠燈都為紅燈否則交通燈處于正常的顯示狀態3Reset0clk為上升沿觸發且hold0如果state為a狀態時如果a_m1且next_state 1則recount1st

26、ate bsign_state "1XXXXXXXXXX1"否則recount 0state a如果為手動狀態a_m0且h_butt 1則recount 1state b sign_state "1XXXXXXXXXX1"否則recount 0 state a4Reset0clk為上升沿觸發且hold0如果state為b狀態時如果a_m1且next_state 1則recount1state csign_state "1XXXXXXXXXX0"否則recount 0state b如果為手動狀態a_m0且h_butt 1則recount

27、 1state c sign_state "1XXXXXXXXXX0"否則recount 0 state b5Reset0clk為上升沿觸發且hold0如果state為c狀態時如果a_m1且next_state 1則recount1state dsign_state "1XXXXXXXXXX1"否則recount 0state c如果為手動狀態a_m0且h_butt 1則recount 1state d sign_state "1XXXXXXXXXX1"否則recount 0 state c6Reset0clk為上升沿觸發且hold0

28、如果state為d狀態時如果a_m1且next_state 1則recount1state esign_state "1XXXXXXXXXX1"否則recount 0state d如果為手動狀態a_m0且h_butt 1則recount 1state d sign_state "1XXXXXXXXXX1"否則recount 0 state d7Reset0clk為上升沿觸發且hold0如果state為e狀態時如果a_m1且next_state 1則recount1state esign_state "1XXXXXXXXXX1"否則re

29、count 0state d如果為手動狀態a_m0且h_butt 1則recount 1state f sign_state "1XXXXXXXXXX1"否則recount 0 state e8Reset0clk為上升沿觸發且hold0如果state為f狀態時如果a_m1且next_state 1則recount1state asign_state "1XXXXXXXXXX1"否則recount 0state f如果為手動狀態a_m0且h_butt 1則recount 1state a sign_state "1XXXXXXXXXX1"

30、;否則recount 0 state fcom 閃爍電路模塊的設計com1 原理及功能閃爍模塊一般用來提醒或者引起致意有時又希望能關斷某一路的顯示本設計中采用關斷某個一個LED 的方法利用一個低頻2Hz左右的時鐘與全部的輸入信號都做與運算然后在送到LED的輸入端口這樣就會實現該低頻時鐘的頻率閃爍功能閃爍模塊控制交通燈閃爍通過與運算其實現功能主要程序為elsif clk_flash 1 then 閃爍模塊閃爍時鐘if flash_addr "01"and flash 1then 控制交通指示燈 cnt "01XXXXXXXXXX" cnt_flash di

31、ns xor cnt 異或運算else cnt_flash dins end ifelsif flash_addr "11" and flash 1 then cnt "01XXXXXXXXXX" cnt_flash dins xor cntelse cnt_flash dinsend if其中clk_flash2hz是低頻閃爍信號clk是系統時鐘信號clk_flash是低頻閃爍時鐘信號 flash flash_addr是交通燈控制器和計數器控制器產生的控制信號它們共同作用判別是否關斷關開LED交通燈com2 時序仿真圖2-6 閃爍電路模塊時序仿真波形時

32、序仿真說明1reset1則cnt_flash清零2reset0clk為上升沿觸發如果hold1時cnt_flashdins即保持不變輸入等于輸出3 reset0clk為上升沿觸發且hold0如果clk_flash 1 且flash_addr "01"and flash 1則cnt01XXXXXXXXXXcnt_flash dins xor cnt否則cnt_flash dins4reset0clk為上升沿觸發且hold0如果clk_flash 1且flash_addr "11" and flash 1則cnt "01XXXXXXXXXX&quo

33、t; cnt_flash dins xor cnt否則cnt_flash dinscom 消振模塊設計com1 原理及功能交通燈出現緊急情況或需要交通人員進行手動控制時需要手動操作按鍵由于按鍵被按下和按鍵彈起時都有抖動造成控制器采集到多個信號信息使得計數器產生一些誤操作控制器誤判概率增加消振功能模塊通過采用延時響應原理來消除抖動和誤操作模塊利用方波上升延采集信號當采集到信號時進行計數計數直到設定值時系統才認為此信號為有用信息進行響應輸出控制信號否則屏蔽掉此信號不響應執行輸出8在本模塊中有五個輸入端resetr是內部初始化信號當模塊采集到初始化信號時置零內部信號clkr是模塊時鐘信號其它三個是手

34、動按鍵輸入端手動轉化控制按鈕a_mr手動轉換按鈕h_buttonr緊急情況禁止按鈕holdr模塊采用clkr1KHZ的方波作為時鐘信號模塊每1um采集一次信息當采集到十個上升延時響應操作輸出一個1um的控制信號主要程序如下elsif clkrevent and clkr 1 then 1khz的時鐘信號 if holdr 1 then 采集到手動信息if cnt2 "0111" then 計數判斷 cnt2 "0000" hoq 1else cnt2 cnt21 加計數hoq 0end ifend ifcom2 時序仿真圖2-7 消震模塊時序仿真波形時序

35、仿真說明1resetr1則 cnt1cnt2cnt3清零2resetr 0clk為上升沿觸發當holdr1時cnt1的值大于等于10時則清零cnt1令hoq1否則cnt1加一hoq0不變3resetr0clk為上升沿觸發當a_mr1時cnt2的值大于等于10時則清零cnt2令aq1否則cnt2加一aq0不變4resetr0clk為上升沿觸發當h_buttonr1時cnt3的值大于等于10時則清零cnt3令hq1否則cnt2加一hq0不變com 譯碼器設計 com71 原理及功能用來實現將二進制碼或二十進制碼譯成一組與輸入代碼一一對應的高低電平信號的電路就是譯碼器它是一個多輸入多輸出電路它的輸入

36、是二進制代碼或二十進制代碼輸出是代碼所代表的字符本設計中采用七段顯示譯碼器來顯示交通燈上的倒記時com2 時序仿真圖2-8 譯碼器模塊時序仿真波形com 總體電路設計 電路由從總體上是由各個功能的電路模塊組成通過元件例化語句調用低層次的當前設計實體 程序見附錄P9 圖2-9 總體電路的時序仿真波形24 實驗平臺的引腳配置及下載測試com 實驗平臺介紹com1 實驗系統主板提供的基本功能說明15個按鍵即九個琴鍵按鍵按住琴鍵對應輸出指示的紅色二極管亮表示輸出高電平松開琴鍵對應輸出指示的紅色二極管滅表示輸出為低電平五個電平按鍵按下鍵對應輸出指示的紅色二極管亮表示輸出高電平再按下鍵對應輸出指示的紅色二

37、極管滅表示輸出為低電平一個脈沖模式按鍵當按下此按鍵對應輸出 20ms 的脈沖電平各按鍵均已用軟件消抖8個共陰數碼管其中 7 個作為數碼顯示用顯示采用掃描和自動滅零技術當輸入的四位二進制數大于 1001 時滅燈通過跳線選擇供 CPLDFPGA 或單片機使用6個共陰數碼管其中 6 個作為數碼顯示用自動滅零技術當輸入的四位二進制數大于 1001 時滅燈直接與 CPLDFPGA 連接用戶直接提供 6 個數碼管的 4 位 BCD 碼輸入共 24 位8個發光二極管輸入高電平時二極管發亮4組時鐘輸入時鐘頻率從 50MHz 到 2Hz 即 CLK1 CLK2 CLK3CLK4 其中任何一組只能用一個跳線帽接通

38、時鐘信號結對不能在一組上插兩個或兩個以上的跳線帽接通兩個以上的時鐘一個蜂鳴器和一個喇叭由跳線 K1 接通一個串行通信接口通過跳線選擇供 CPLDFPGA 或單片機使用電源輸入電壓交流 220V-10V電源輸出電壓5V2A和-12V05A5V的地和12V地com2 跳線說明Jump112對XILINX的CPLDFPGA進行配置 34對LATTICE的 CPLD進行 配置 56對ALTERA的 CPLDFPGA進行配置 78對89S5X進行配置 表2-2 Jump1端口配置75318642 Jump22457單片機串口與RS232的 端口相連 1368CPLDFPGA串行信號與RS232端口相連

39、1278單片機與CPLDFPGA的串口對連 表2-3 Jump2端口配置24681357 Jump3 12提供USB外設的電源 表2-4 Jump3端口配置12 Jump412選通AS0809 23停用0809 表2-5 Jump4端口配置123 Jump512選通AD0832 34停用0832 表2-6 Jump5端口配置123MCU JP1全接左由CPLDFPGA控制掃描數碼管顯示全接右由單片機控制掃描數碼管顯示MCU JP2 按下單片機下載狀態 彈上單片機運行狀態MCU JP3 全接左使用IIC端口連接 全接右使用掃描鍵盤MCU JP4 全接左由CPLDFPGA控制步進電機驅動信號 全接

40、右由單片機控制步進電機驅動信號ALTERA公司的 EP1K30芯片的 下載實驗板的引腳分配表2-2 下載實驗板1K30的 引腳與實驗系統的連接關系9功能腳號功能腳號功能腳號功能腳號Clk155A1低118SL AD 95雙口RAMClk254B1121R AD 92Clk359C1120EN AD 91CE113Clk456D1 高128D7 AD 82WR112蜂鳴器64A2122D6 AD 81RD111喇叭65B2131D5 AD 86D796琴鍵144C2130D4AD83D698琴鍵246D2133D3AD88D597琴鍵347A3132D2AD87D4100琴鍵448B3136D1

41、AD90D399琴鍵549C3135D0AD89D2102琴鍵651D3138WRAD67D1101琴鍵760A4137D7AD80D0110琴鍵862B4141D6AD79A10109琴鍵963C4140D5AD78VGA電平137D4143D4AD73RED119電平238A5142D3AD72RED020電平339B57D2AD70GRN122電平441C5144D1AD69GRN021電平542D59D0AD68BLU126脈沖43A68RxD29BLU023LED 818B611TxD30VG1328LED714C610PS132VG1427LED617D613PS531LED512

42、LED2117T1LED4119LED1114LED3116com 引腳配置及下載測試按表2-2可對管腳重新分配和定位進行硬件測試為后面的器件下載和硬件實現提供保障管腳配置定位如圖2-10所示圖2-10 管腳的配置定位3 交通燈的硬件實現31 顯示實現本設計中要求實現兩個方面的顯示即各個路口的時間和指示燈的狀態對于路口時間顯示可以采用LED七段數碼管實現方向指示可以采用LED點陣顯示器來實現LED七段數碼管有共陰極和共陽極兩種接法本設計電路中采用共陰極數碼管即把七段數碼管內的所有發光二極管的陰極都接地時數碼管才能被點亮LED點陣顯示器亦稱LED矩陣板以發光二極管為象素按行與列順序顯示彩色LED

43、顯示以三色二極管作為象素點來顯示紅光綠光澄光復合光紅燈和綠燈同時亮它們分別代表交通燈控制電路中的紅燈綠燈和黃燈三個指示燈此外在設計電路時在七段數碼管和點陣顯示器的每一段串聯510的電阻以限制流經每一段的電流否則電流太大容易燒毀發光二極管1032 芯片的實現該設計采用的是EP1K30TC144-3芯片首先對通過對各個模塊的編譯和排錯形成工程文件然后進行編譯設置成工程編譯綜合到仿真測試通過后以備后用最后將頂層文件設置為工程統一處理這時頂層文件會自動根據元件例化語句調用底層編譯好的設計文件在設定好頂層文件后底層設計好的文件元件型號和引腳鎖定信息會自動失效元件型號的選定和引腳鎖定情況始終以工程文件頂層

44、文件的設定為準同樣仿真結果也是針對工程文件的所以在對最后的頂層文件處理時仍然應該對它重新設定元件型號和引腳鎖定圖2-11 內部控制芯片的連接33 外圍電路的實現根據交通燈系統的控制要求所示為本系統的硬件電路圖該電路包含了1個CPLD芯片個七段LED數碼顯示器個分別表示各個方向上的紅黃綠燈以及相應的限流電阻 PLUS II軟件操作平臺等相關技術很不大了解的狀態我開始了獨立的學習和試驗查看相關的資料和書籍讓自己頭腦中模糊的概念逐漸清晰使自己對硬件描述語言VHDL應用系統PLUS II軟件系統的設計流程每一次改進都是我學習的收獲技術是一種實現電子系統或電子產品自動化設計的技術它是為了適應現代電子產品

45、設計的要求伴隨著計算機集成電路電子系統設計的發展吸收眾多學科的成果而逐步形成的一門新技術在本設計中主要實現了在十字路口交通燈的燈色變化和計時變化通過VHDL語言編譯軟件程序在PLUS II軟件平臺上進行VHDL代碼設計目標器件選擇編譯仿真引腳配置編程下載硬件測試對交通燈的設計進行現實模擬仿真通過波形圖分析電路這樣做可實現模擬運行出錯時可隨時修改而且可以根究不同的實際情況修改完善程序節約項目開發資金由于我所學的知識不夠全面設計中存在不足和需要改進的地方例如對于系統性能提高的諸如面積優化邏輯優化設計速度優化并未涉及以至等一些較新技術在本實際中就沒有顯現出來 通過這次畢業設計的完成使得我對自己所學的

46、專業知識又有了更深一步的了解開拓了個人的視野在相關的知識和技巧方面也有了提高但是個人所學是有限的難免有疏漏的地方通過這次設計希望有所改善讓所學的專業知識從理論運用到實際工作和生活中致 謝參考文獻1擦光輝CPLDTPGA的開發與應用M北京電于工業出版社2002 2杜玉遠EDA設計快速入門圓電子世界2004 1 24 3ALTERA公司DATABOOKM北京清華大學出版社1998 4ALTERA公司ADHL語言M北京清華大學出版社1998 5劉寶琴ALTERA可編程邏輯器件及其應用M北京清華大學出版社1995 6宋萬杰羅豐吳順君CPLD技術及零應用M西安西安電子科技大學劉寶琴ALTERA可編程邏輯

47、器件及其應用清華大comDL實用教程 電子科技大學出版社 2000310 馬淑華高原電子設計自動化 北京郵電大學出版社分頻器程序library ieeeuse ieeestd_logic_1164alluse ieeestd_logic_unsignedallentity fpq isport clk_1kresetin std_logicclkclk_flash out std_logic endarchitecture art of fpq issignal clk_cnt1 std_logic_vector 3 downto 0 signal clk_cnt2 std_logic_vec

48、tor 7 downto 0 signal clk_s1clk_s2clk_f std_logicbeginprocess resetclk_1k beginif reset 1 thenclk_cnt1 "0000"clk_s1 0elsif clk_1kevent and clk_1k 1 thenif clk_cnt1 "0101" then clk_cnt1 "0000" clk_s1 1else clk_cnt1 clk_cnt11clk_s1 0end if end ifend processprocess resetcl

49、k_1kclk_s1 beginif reset 1 thenclk_cnt2 "00000000"clk_s2 0clk_f 0elsif clk_1kevent and clk_1k 1 thenif clk_s1 1 then if clk_cnt2 "00000010" then clk_cnt2 "00000000" clk_s2 1 clk_f not clk_felse clk_cnt2 clk_cnt21clk_s2 0clk_f clk_f end ifend ifend ifend processclk clk_s

50、2clk_flash clk_s1 and clk_s2 and clk_fend計數器程序library ieeeuse ieeestd_logic_1164alluse ieeestd_logic_unsignedalluse ieeestd_logic_arithallentity jsq isport clkresetrecountholdin std_logicdin1din2in std_logic_vector 7 downto 0 dout1dout2 dout3dout4 out std_logic_vector 3 downto 0 next_state out std_l

51、ogicflash out std_logic endarchitecture art of jsq is signal next_sa last_f std_logic signal cnt1cnt2 std_logic_vector 7 downto 0 beginprocess clkresetrecounthold beginif reset 1 then cnt1 "00000000" cnt2 "00000000"elsif clkevent and clk 1 thenif hold 1 thencnt1 cnt1cnt2 cnt2elsi

52、f recount 1 thencnt1 din1cnt2 din2else cnt1 cnt1-1cnt2 cnt2-1end if end ifend processdout1 cnt1 3 downto 0 dout2 cnt1 7 downto 4 dout3 cnt2 3 downto 0 dout4 cnt2 7 downto 4 process cnt1cnt2 beginif cnt1 "00000000" or cnt2 "00000000" then next_sa 1else next_sa 0end ifif cnt1 "

53、;00000101" or cnt2 "00000101" thenlast_f 1else last_f 0end ifend processnext_state next_saflash last_fend計數器控制器程序library ieeeuse ieeestd_logic_1164alluse ieeestd_logic_unsignedalluse ieeestd_logic_arithallentity jsqkzq isport clk in std_logicreset in std_logicrecount in std_logic sign_s in std_logic_vector 11 downto 0 load1 out std_logic_vector 7 downto 0 load2 out std_logic_vector 7 downto 0 flash_addr out std_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論