用VHDL設(shè)計專用串行通信芯片_第1頁
用VHDL設(shè)計專用串行通信芯片_第2頁
用VHDL設(shè)計專用串行通信芯片_第3頁
用VHDL設(shè)計專用串行通信芯片_第4頁
用VHDL設(shè)計專用串行通信芯片_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、用VHD改計專用串行通信芯片用VHD改計專用串行通信芯片類別: EDA/PLD&nbsp作者:成都市電子科技大學(xué)通信學(xué)院信息所( 610054)付曉宇吳詩其來源:電子技術(shù)應(yīng)用摘要:一種專用串行同步通信芯片(該芯片內(nèi)部結(jié)構(gòu)和操作方式以INS8250為參考)的VHD段計及CPL汝現(xiàn),著重介紹了用 VHDLR CPLDS計專用通信芯片的開發(fā)流程、實(shí)現(xiàn)難點(diǎn)及應(yīng)注意的問題。關(guān)鍵詞: VHDLFPGA CPLD UART計時分復(fù)用器在通信系統(tǒng)中,通信芯片是整個硬件平臺的基礎(chǔ),它不僅完成OSI 物理層中的數(shù)據(jù)發(fā)送和接收,還能根據(jù)傳輸方式和協(xié)議的不同實(shí)現(xiàn)不同的數(shù)據(jù)校驗(yàn)方式及數(shù)據(jù)組幀格式。目前,許多廠商

2、都提供通用的串行通信芯片,其傳輸方式分為同步方式和異步方式。其中,異步芯片大多與INTEL的8250芯片兼容;而同步方式, 由于一般涉及到所支持的傳輸協(xié)議(BSC HDLC SDL曲),所以當(dāng)用戶要求 應(yīng)用特定的同步傳輸協(xié)議時,往往需要設(shè)計專用的 SRT (同步收發(fā)器)。以前,大多采用通用的邏輯元器件進(jìn)行設(shè)計,這導(dǎo)致了設(shè)計和調(diào)試過程冗長、系統(tǒng)穩(wěn)定性不高,非常不便。如今,隨著以 FPGAFD CPLM代表的可編程ASIC技 術(shù)的日趨成熟和完善,用戶完全可以根據(jù)自己的要求,以EDA技術(shù)作為開發(fā)手段,用一塊FPGAE CPL以計出符合自己需要的芯片。本文以開發(fā)統(tǒng)計時分復(fù) 用器中的專用同步收發(fā)芯片為例

3、,介紹整個芯片的開發(fā)流程。1統(tǒng)計時分復(fù)用器系統(tǒng)功能及模塊組成統(tǒng)計時分復(fù)用器完成7 路異步數(shù)據(jù)和1 路同步數(shù)據(jù)的復(fù)接工作,其功能框圖如圖1 所示,同步串口傳輸協(xié)議如圖2 所示。由于傳輸距離較近且路數(shù)不多,功能相對簡單。出于系統(tǒng)功耗和成本的考慮,將這個專用的SRTffi整個接口控制單元集成到一塊 CPLD(XC95144中。2 CPLD內(nèi)部功能框圖及設(shè)計CPLM部結(jié)構(gòu)主要由接口控制單元和 SRTffl成,這里主要介紹一下 SRT的結(jié)構(gòu)和功能模塊(見圖3)。由于選用的UART(通用異步收發(fā)器)與 INS8250兼容,為簡化主控單元訪問外部通信芯片的程序的編寫,統(tǒng)一操作流 程,在SRT的設(shè)計上盡量模仿

4、INS8250的結(jié)構(gòu)。本設(shè)計采用模塊化設(shè)計。按功能將 SRT內(nèi)部結(jié)構(gòu)發(fā)分為5個模塊,每 一個模塊對應(yīng)一個VHDL勺設(shè)計文件。這樣設(shè)計的好處是有利于各功能模塊的編 寫和調(diào)試,從而降低了整個 SRT的調(diào)試難度,提高了軟件的可維護(hù)性及可讀 性。下面給出各個設(shè)計文件的外功能簡介(對于其中幾個重要的模塊還列出了 端口描述和部分實(shí)現(xiàn)代碼):( 1) SRTCRTL.VHDSRTCRTL.VHD為SRTB控制模塊,負(fù)責(zé)地址譯碼,當(dāng)片選信號有效 時將數(shù)據(jù)線上的數(shù)據(jù)寫入相應(yīng)的寄存器。SRT®片內(nèi)部共設(shè)有接收緩存器、發(fā)送保持器、線路控制寄存器、除數(shù)寄存器(高低8 位各 1 個)、自環(huán)控制寄存器等 6 個

5、控制寄存器,每個寄存器都被分配了1 個地址,通過對相應(yīng)地址進(jìn)行讀寫,CPUM完成數(shù)據(jù)發(fā)送、接收、自環(huán)及芯片參數(shù)設(shè)置等操作。( 2) LOOP.VHD本模塊的功能是根據(jù)用戶的指令,對芯片本身功能進(jìn)行測試。用戶首先將芯片設(shè)置為自環(huán)狀態(tài),使芯片內(nèi)部發(fā)送數(shù)據(jù)線與直接接收數(shù)據(jù)線短接;再通過向發(fā)送保持器寫入特定的數(shù)據(jù),與接收緩存器中讀出的數(shù)據(jù)進(jìn)行比較,看兩者是否相同,用戶即可判斷芯片是否工作正常。( 3) CLKGEN.VHDCLKGEN.VHD波特率發(fā)生器模塊,用來產(chǎn)生發(fā)送同步的時鐘信號doclk。它將除數(shù)寄存器高低各8位共16位數(shù)據(jù)作為除數(shù),對外部2MHz勺時鐘 源進(jìn)行分頻。用戶可通過修改除數(shù)寄存器的

6、值動態(tài)地改變數(shù)據(jù)傳輸速率,因此操作方便、靈活。( 4) RBR.VHDRR.VH/為整個芯片的接收模塊,其中包括接收緩存器、接收數(shù)據(jù)同步、串 / 并轉(zhuǎn)換。端口描述如下:entity rbr isport (diclk:in STD_LOGIC; - 接收數(shù)據(jù)同步時鐘,由發(fā)方提供rrbr: 在 STD_LOGI;C - 讀接收緩存器信號rsrbr:in STD_LOGIC; - 接收緩存器清零信號dbus:out STD_LOGIC_VECTOR (7 downto 0);-8 位數(shù)據(jù)線,單向,輸出dr: out STD_LOGIC; - 接收緩存器數(shù)據(jù)有效信號ren : out STD_LOG

7、IC; - 妝收使能信號,通知發(fā)方接收方準(zhǔn)備好可發(fā)送數(shù)據(jù)di : in STD_LOGIC); - 串行接收數(shù)據(jù)線end rbr ;當(dāng)接收緩存器中無數(shù)據(jù)時,ren 信號有效,通知發(fā)送方傳數(shù)據(jù)。然后根據(jù)dilck對di信號采樣,一旦緩存器滿,ren無效,dr有效,通知CPUW 數(shù)。仿真波形如圖4 所示。部分代碼如下:process (rsrbr,diclk) -serial data toparallel datavariable l,m: integer range 0 to 8;beginif rsrbr='1'thens_p<="00000000"

8、m:=0;ef<='1'elsif diclk'event and diclk='1'thenl:=7-m ;s_p(1)<=di;m:=m+1;If m=8 thenm:=0;ef<='0'end if;end if;if rrbr='1' thendbus>=s_p;ef<='1'else dbus<="ZZZZZZZZ"end if;end process;(5)WTHR.VHDWTHR.VHD為整個芯片的發(fā)送模塊,其中包括發(fā)送保持器、并 /用轉(zhuǎn)

9、 換。端口描述如下:entity wthr isport (sen:in STD_LOGIC; - 發(fā)送使能信號whtr: in STD_LOGIC; - 寫發(fā)送保持器信號dbus: in STD_LOGIC_VECTOR (7 downto 0;-8 位數(shù)據(jù)線,單向rsthr:in STD_LOGIC; - 清發(fā)送保持器thre:out STD_LOGIC; - 發(fā)送保持器數(shù)據(jù)空thre : out STD_LOGIC; - 發(fā)送串行數(shù)據(jù)線clkout:out STD_LOGIC; - 發(fā)送數(shù)據(jù)同步時鐘信號sclk: in STD_LOGIC); - 波特率發(fā)生器產(chǎn)生的分頻信號end wth

10、r ;當(dāng)發(fā)送保持器無數(shù)據(jù)時,thre信號有效,通知CPK寫。一旦CPU!入數(shù)據(jù)且sen 有效,便根據(jù)波特率發(fā)生器產(chǎn)生的sclk 信號將數(shù)據(jù)并/串轉(zhuǎn)換,并通過 dout 和 clkout 將串行數(shù)據(jù)和同步時鐘發(fā)送。仿真波形如圖5。部分實(shí)現(xiàn)代碼如下:process (rsthr,sclk,sen,sef) -parallel datato serial data variable l:integer range 0 to 7;beginif rsthr='1' thenm<=0;1:=7;sef<='1'elsif wthr='1'the

11、nsef<='0'elsif sen='1'and sef='0' thenif sclk'event and sclk='1' thendout<=w_p(1);m<=m+1;l:=1-1;if m=7 thenm<=0;1:=7;esf=<='1'end if;end if;end if;end process;3實(shí)現(xiàn)難點(diǎn)及使用VHD3注意的一些問題由于VHD印言是描述硬件行為的,相對其它開發(fā)軟件的高級語言而 言,在編程過程中有一些特殊性,所以經(jīng)常會出現(xiàn)語法正確但無法綜合的問 題。其原因多半因?yàn)榫幊陶邔τ布?nèi)部的工作原理了解不夠,寫出的代碼硬件無法實(shí)現(xiàn)。通過這塊芯片的設(shè)計,在此總結(jié)出一些應(yīng)注意的問題,供大家參 考:( 1)在一個進(jìn)程中只允許一個信號上升沿作為觸發(fā)條件。( 2)信號值改變后要經(jīng)過一個小的延時才能生效,同個信號不能在多 個進(jìn)程中賦值(因?yàn)槎鄠€信號源不能同時對同一個信號驅(qū)動)。( 3)時序電路和組合電路最好不要在同一個進(jìn)程中,以免費(fèi)資源。4)一個功能模塊最好按上升沿信號分多個進(jìn)程完成,各進(jìn)程間用信號聯(lián)系。( 5)同一個信號在進(jìn)程中的值改變后,要注意該值改變前后該進(jìn)程中其它變量的變化,避免邏輯死鎖。( 6

溫馨提示

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

評論

0/150

提交評論