EDA:基于VHDL的串口設計_第1頁
EDA:基于VHDL的串口設計_第2頁
EDA:基于VHDL的串口設計_第3頁
EDA:基于VHDL的串口設計_第4頁
EDA:基于VHDL的串口設計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、EDA課程設計題目:基于VHDL的串口設計院系:機電學院班級:電氣103姓名:張明軍學號:20100744113日期:2012.12.102012.12.1714目錄1、任務要求1、1課題要求1、2設計目標2、系統(tǒng)設計2、1層次模塊劃分2、2分頻模塊的設計2、3發(fā)送電路的波特率發(fā)生器的設計2、4接受模塊的設計2、5接收電路的波特率發(fā)生器和采樣時鐘的設計3、VHDL的描述思路4、總體電路的描述5、系統(tǒng)仿真驗證5、1發(fā)送電路的波特率發(fā)生器的VHDL的仿真5、2發(fā)送模塊VHDL的仿真5、3特率發(fā)生器和采樣時鐘的設計的VHDL仿真5、4接受模塊的描述的VHDL仿真5、5綜合仿真6、結果與分析6.1實現(xiàn)

2、功能說明6.2器件資源分析6.3故障和問題分析7、總結體會8、參考文獻9、附錄以上模塊分別生成符號文件,最后在頂層模塊中進行連接。2、2分頻模塊的設計由于UART是異步傳輸,沒有傳輸同步時鐘。為了能保證數(shù)據(jù)傳輸?shù)恼_性,UART采用26倍數(shù)據(jù)波特率 的時鐘進行采樣。每個數(shù)據(jù)有16個時鐘采樣,取中間的采樣值,以保證采樣不會滑碼或誤碼。一般UART-幀 的數(shù)據(jù)位數(shù)為8,這樣即使每個數(shù)據(jù)有一個時鐘的誤差,接收端也能正確地采樣到數(shù)拯。這里采用常用的數(shù)據(jù)波特率為9600bps,則所需時鐘的頻率為16*9600.系統(tǒng)時鐘為50MHz,則分頻系數(shù)為 50000000/(16*9600) =325.52,取整

3、為 325。分頻器實現(xiàn)相對簡單,這里對其設計流程圖不做詳細介紹。只是將設計過程和結果簡述如下:首先用VHDL語言進行設計輸入,并生成模塊文件如圖2-1所示,其中elk為50M系統(tǒng)時鐘輸入,clkout為 325分頻后時鐘輸岀。 elk divi inst4-圖2-1分頻模塊然后建立波形文件,對以上模塊進行時序仿真,仿真結果如圖22所示,方正結果說明,分頻輸出實現(xiàn) 了對輸入的325分頻,分頻模塊設訃正確。NameValue at9.83 ns110elkA 1 utA 09.825 nsJ515.3,520呷 us 25.2 孔平圖2-2分頻模塊仿真結果2、3發(fā)送電路的波特率發(fā)生器的設計要產(chǎn)生4

4、800波特率,要有一個不低于4800Hz的時鐘才可以。為產(chǎn)生高精度的時鐘,我選了16KHz的晶振來提供外部時鐘。當然,你也可以選其它頻率的時鐘來產(chǎn)生4800Hz的時鐘。對于16KHz時鐘,需要 設計一個13進制的分頻器來產(chǎn)生4800波特率的時鐘信號。發(fā)送過程:空閑狀態(tài),線路處于高電平;當受到發(fā)送數(shù)據(jù)指令后,拉低線路一個數(shù)據(jù)位的時間T,接著 數(shù)據(jù)按地位到高位依次發(fā)送,數(shù)據(jù)發(fā)送完畢后,接著發(fā)送停止位(停止位為高電平),一幀數(shù)據(jù)發(fā)送結朿。(1)模塊流程圖根據(jù)以上發(fā)送過程,發(fā)送模塊算法示意圖設計如圖2-3所示。發(fā)送數(shù)圖23 UART發(fā)送數(shù)據(jù)算法示意圖(2)生成模塊文件新建一原理圖文件,將VHDL源文件

5、生成對應的模塊文件如圖2-4所示,其中elk為時鐘輸入,datain為需 要發(fā)送的數(shù)據(jù)輸入,wrsig為發(fā)送命令輸入idle為忙閑信號輸岀,tx為串行數(shù)據(jù)輸岀端。=uarttxX1J1? elkiidle r5-? datairi7 0tx r 評 wrsig5-iV? inst49圖24 UART發(fā)送模塊圖25 UART發(fā)送模塊仿貞原理圖2、4接受模塊的設計根據(jù)采用的幀格式,需要發(fā)送的數(shù)據(jù)為10位(1位開始位、8位數(shù)據(jù)位、1位停止位),在發(fā)送完這10位后,就應 該停止發(fā)送,并使發(fā)送端電平處于邏輯1,然后等候下次的發(fā)送.接收電路比發(fā)送電路要復雜的多,接收電路要時實檢測起始位的到來,一旦檢測到起

6、始位到,就要將這一幀數(shù) 據(jù)接收下來。串行接收電路首先要能判斷接收數(shù)據(jù)的到來,即每一幀的開始,然后對數(shù)據(jù)進行3次采樣,最后判決輸岀。為簡 化設計,幀格式仍然采用:1位開始位+8位數(shù)據(jù)位+1位停止位。UART接收模塊的功能:時時檢測線路,當線路產(chǎn)生下降沿時,即認為線路有數(shù)據(jù)傳輸,啟動接收數(shù)據(jù) 進程進行接收,按從低位到高位接收數(shù)據(jù)。(1)模塊流程圖根據(jù)以上描述的接收模塊的功能,可將接收模塊算法示意圖設汁如圖2-6所示。開接收數(shù)14圖26接收模塊算法示意圖(2)生成模塊文件新建一原理圖文件,將VHDL源文件生成對應的模塊文件如圖4.10所示,其中elk為時鐘輸入,rx為需要串行數(shù)據(jù)輸入,dataout

7、為并行輸岀,uartrxelk dataout7.Orxrdsigrdsig為忙閑信號輸岀。inst4圖2-7 UART接收模塊(3)波形仿真新建一個原理圖文件,加入各功能模塊,并添加輸入輸出端口,各個模塊的連接如圖2-8所示。c: ckotr;testuart1ickdotaout(7.0svrsigiiii instickIdfesainp .ujIXwrsiginot2UCfttXck data:UF 0 rvrdsigh3vozrlnip圖2-8 UART接收模塊仿貞原理圖保存原理圖為uartrxts.bdf.編譯工程文件,編譯無誤后新建波形仿真文件,加入輸入輸出信號,設置系 統(tǒng)時鐘e

8、lk為50MHz,保存為uartrxts.vwf,進行UART數(shù)據(jù)接收的波形仿真,波形仿真報告如圖29所示13.125 n$ | Pointer:865.55 us Interval:865.64 u$ Start:End:A 更 色、NameValue13.13聆0elkX電妙1clkou tI參2S dataoutA i參11匡|utrxA i0 20idleX iT21rdsigX i Master Time Bar:1 3屮 ms3 93? ms13. 125 ns 2.6*1 msio】 yTrirTnrzmorun7rymcwYiJIJI圖29 UART接收模塊仿真結果對上圖分析看

9、出,UART接收模塊接收到的數(shù)據(jù)與UART發(fā)送模塊發(fā)送的數(shù)據(jù)相一至,每接收到一個數(shù)拯 都有一個讀取數(shù)據(jù)指示rdisg. UART接收模塊得到正確驗證2、5接收電路的波特率發(fā)生器和采樣時鐘的設汁為提髙接收的準確性,減少誤碼率,每一位數(shù)據(jù)都用3倍頻的波特率對數(shù)據(jù)進行采樣,然后對3次采樣結果進 行判決:如果3次采樣中至少有2次為高電平,則接收這一位數(shù)據(jù)被判決為髙電平,否者,為低電平。為完成3次采樣,除了頻率為9600Hz的接收時鐘外,還要有一個3倍頻的采樣時鐘3 VHDL描述思路第二部分“系統(tǒng)設計”中對系統(tǒng)的功能和邏輯結構、以及模塊劃分都有了詳細的敘述,模塊間的耦合和信號 的傳遞關系已經(jīng)淸晰。可以使

10、用VHDL語言描述硬件電路了。發(fā)送模塊和接收模塊的VHDL語言描述按照事先的設汁進行編寫可以使電路思想明晰化,避免編程過程中用 軟件的思維去描述硬件的電路系統(tǒng),也可有效避免錯誤。由于進行了細致的模塊劃分,模塊的間的耦合程度降到了很低,這就使得電路設計的可靠性大為增強,只要 模塊的輸出滿足了功能左義,整個系統(tǒng)就能正常工作,即便個別模塊岀現(xiàn)問題,也不會過多影響到英他模塊。實 際測試過程中也印證了這一點。4總體電路的描述頂層符號文件描述如下:CLK.DIV5系統(tǒng)仿真驗證系統(tǒng)仿真分為兩個步驟進行,首先是關鍵模塊的仿真,驗證子系統(tǒng)功能的正確性,然后是綜合仿真,驗證整 個系統(tǒng)的功能。5. 1發(fā)送電路的波特

11、率發(fā)生器的VHDL的仿真IAX-tplus II - h:ppccclk_div - clk.div. scf - favefori EditorII File Edit Vie Bids Assi IJtilitKS Options Jiadw HelI Time |0.DnsIrtercal: -Efl.OnsName:序-elka elk dh135O.OnsValue:0Jfflfjfjfjfijj.w.r.01Jrs 100.0ns19).0ns330.0ns ZO.Ons 330.0ns JSJ.Ons 400.0ns451.0ns5、2發(fā)送模塊VHDL的仿貞.5、3特率發(fā)生器和采

12、樣時鐘的設訃的VHDL仿真Irter.al: |-81.2n$|十| Tire:陽加AName.Pet |B16.0m25.0re93.0ns750fICO.Ois2C0Menclk一您 QE-譏uoTTTYTmTTTTHTKrnTTrCTCrfcriTTTrflo rn rn rnm rn5、4接受模塊的描述的VHDL仿貞.AX+plus II - rXpcUoireceivelO - coBreceivelO. scf - Iavefor EditorRUfplus II hl* Hit Xiw 申& Xzstgn Utililtax Ojt:inc Yind?/ MlpDEfV心直國應基

13、(S We 話qqm-Ret 7D.Dri$Name:Vaj9:Df-corri1ir-clr1i-clk30u-clkl0-O Valid1密QH3:0翦PIH7愛NumH1砂mHOJ250ns50.0n5750nsIttl.Ons1250ns150 Chs1750re2LLJ_r t_u丁RJm_n_n_OJ2JJz3刃):nr7口nx6Tzc231:5 7 2Dim2OPPn :( i:;2 n p pn x G2加lrter.1: |-S3.4n$?00re5、5綜合仿真IAI-*plue EE - h:ppccppcc - ppcc. set - favefora Editor$綁城

14、“ IT file Nit Vie/ gc3? issigu l!tiUies Qptiwrs Jiadw B?lpn?心蝕囪色必/國豊(駕製夏字r::;Ref. |75.0rr$Tirrie. 822.1nsJ 欣網(wǎng).|7d7.1rrsA,Value:7.0rs7S).0n$?75.Ons80.0ns825.0nsb SEND 衛(wèi)AT的1O_OATA|B.1HOF8F掃沏畑燉):旳別紀旳仰佃使何伍獅輒加n-SEND少TM0It-EN1AA CLP CLK11 crCfl0Ax9QIB.1)Hro叩 :1:1DZ-croo01INVl堂1 bal 岡 ! !6、結果與分析6.1實現(xiàn)功能說明本實

15、驗完成的RS232串口通信控制器,完成了課題要求的所有功能。由于頂層設計采用了子系統(tǒng)分模塊描述的方法,使得控制器具有很好的擴展性??梢栽诓桓淖兿到y(tǒng)框架和模 塊間電路連接關系,增加其他模塊,實現(xiàn)其他功能。本課題中并沒有在數(shù)據(jù)幀中加入校驗位,僅僅實現(xiàn)了 i位起始位,1位停止位和8位數(shù)據(jù)位的傳輸。初步實 現(xiàn)了單片機和CPLD之間的通信。數(shù)字系統(tǒng)的設計,真正的重點在于把系統(tǒng)層而的設計做好,系統(tǒng)架構淸晰,層次明確,穩(wěn)左性好,可擴展和 可移植性好,這樣的系統(tǒng)給到用戶,只要添加用戶模塊或者稍作修改即可完成非特圧的功能。6.2器件資源分析在設計階段,對系統(tǒng)描述采用過多種方式,嘗試了多種描述,代碼的長度在增加,

16、模塊在增多,但系統(tǒng)穩(wěn)左 性和可擴展性也在增強,層次結構和模塊設計也更加完善。設訃之初對資源使用沒有多少概念,時常以軟件的思想描述硬件,在描述中使用乘法等資源耗費嚴重的操作, 也曾使用過嵌套多層的IF-ELSE語句,產(chǎn)生很長的選擇器,降低了模塊的可靠性,增加處理延時。隨著設計的深 入,加上反復求精的過程磨練,逐步對硬件描述綜合出的實際電路形式有了更多的理解,對延時和資源占用有了 初步概念。一個顯見的結論是描述代碼的長度和綜合后的電路形式與資源占用無必然聯(lián)系。需要關注編譯器在綜 合時如何將VHDL行為級描述轉化為結構化的門級電路,才能分析淸楚資源占用率和電路結構。行為級描述可能 與實際綜合的電路產(chǎn)

17、生不一致,需要謹慎對待。6.3故障和問題分析實驗中由于詳細劃分了子模塊、各模塊的實現(xiàn)都仔細進行了描述,故沒有出現(xiàn)太多的故障。但是在最后將個 子模塊進行綜合的時候出現(xiàn)了仿真結果不正確的現(xiàn)象,后經(jīng)過多次修改終于得到正確的結果。由于對VHDL語言的學習與理解還停留在低層次上,故在編譯時岀現(xiàn)了很多錯誤,在査閱了諸多相關資料后 對VHDL的語法基本熟悉,逐漸深入,從最初的模塊初步成型到最后全模塊化,自頂向下設汁系統(tǒng),完成VHDL描述。最深的感受在于,開始時一心專注于代碼的編寫和 語法的使用,忽視了系統(tǒng)設計,導致設訃結果不令人滿意,后來逐步采用自頂向下的設計思路,先從邏輯上把系 統(tǒng)的功能和子系統(tǒng)的劃分描述

18、淸楚,然后設計各個模塊的接口和定義,最后分別去描述底層各個模塊的功能和實 現(xiàn),淸晰明了,一氣呵成。這也是系統(tǒng)沒有多少故障的主要原因。7、總結體會對這次設訃的題目起初不是很了解,后來通過同學、老師的解答和上網(wǎng)搜尋對設計有了一左的了解,對課題 的設計業(yè)采用了很多方法,有復雜的也有簡單的,最終決左采用這個方案,當然,在使用這個方案設計程序的時 候也遇到了許多問題,有VHDL語言的語法問題也有硬件下載和仿貞問題,后來都在同學和老師的幫助下解決了, 解決問題的主要方法還是要加強對VHDL語言的學習和對硬件操作的學習,要注意只是與應用相結合。8、參考文獻1 EDA技術實驗開發(fā)系統(tǒng)實驗指導書,啟東計算機廠有

19、限公司。2 CPLD/FPGA可編程邏輯器件實用教程,馬歿,王丹利,王麗英,機械工業(yè)出版社,2010, 7。3 .微機原理與接口技術(第二版),田輝,高等教育岀版社.20114 .EDA技術實用教程一一VHDL版(第四版),科學出版社附錄1發(fā)送電路的波特率發(fā)生器的VHDLLIBRARY IEEE;USE IEEE.STD LOGIC 1164.ALL;USE IEEE.STD LOGIC ARITH.ALL;USE IEEE.STD LOGIC UNSIGNED.ALL;ENTITY clk_div ISPORTfcIk : IN STD_LOGIC;clk_divl3 : OUTSTD_LO

20、GIC);END clk_div;ARCHITECTURE rtl OF clk_div ISSIGNAL count: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL clk_temp : STD_LOGIC;BEGINPROCESS(clk)BEGINIF (clkevent AND clk=,lI) THENIF(count=,00001101H) THENcount 0);clk_temp =NOT clk_temp;ELSE count = count +1;END IF;END IF;END PROCESS;clk_divl3= clk_temp;END r

21、tl;附錄2發(fā)送模塊的VHDLlibrary ieee;use ieee.stdogic_1164.aH;entity com isport(clk,en:in stdjogic;Send_data:in stdogic_vector(9 downto 0);seriakout std_lo gic);end com;architecture com_arc of com isbeginprocess(clk)variable count:integer range 0 to 9 :=0;beginif en=O thencount:=0;serial=,l,;elsif rising_edg

22、e(clk) thenif count=9 thenserial=Send_data(9);elseserial=Send_data(count);count:=count+l;end if;end if;end process;end compare;附錄3接收電路的波特率發(fā)生器和采樣時鐘設計的VHDLlibrary ieee;use ieee.std_logic_1164.all;entity countl3 isport(clk,en:in stdjogic;Clockl,Clock3:out std_logic);end countl3;architecture countl3_arc

23、 of countl3 isbeginprocess(clk,en)variable count:integer range 0 to 13 :=0;beginif en=,O, thenNUII;els訐(rising_edge(clk) thencount:=count+l;訐 count=13 thenClockl=,l,; count:=0;elseClockVO1;end if;訐(count=3 or count=6 or count=9 ) thenClock3=,l,;elseClock3=,0,;end if;end if;end process;end countl3_arc;附錄接受模塊的VHDLlibrary ieee;use ieee.std_logic_1164.all; entity com_receivelO is port(com,clr;clkbclk3:in stdjogic;Q:out std_logic_

溫馨提示

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

評論

0/150

提交評論