衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

VHDL在通用異步串行接口中的實用設計

電子設計 ? 作者:電子設計 ? 2018-10-09 09:46 ? 次閱讀

1 引言

FPGA從實現粘合邏輯逐步發展成為設計平臺的核心,在電子通信以及航空航天等領域得到了廣泛應用。本人最近實現的中頻軟件無線電硬件平臺,就以FPGA為核心,實現上變頻、下變頻等中頻數字信號處理,并且構成A/D/A、DSPARM模塊之間的通信中心。這種以FPGA為核心的架構使得硬件平臺結構靈活,具有可重構性,為軟件無線電的各種算法分配方案提供了有力支撐。

除了和TMS320C6416之間的數據流采用EMIF接口外,FPGA的其它接口均采用UART。為了軟件開發和移植的便利,UART設計要做到兼容ST16C550的功能。穩定可靠則是作為軟件無線電硬件平臺關鍵接口的基本要求。考慮到嵌入式系統的特點,在設計中應盡量降低功耗。本文圍繞這些目標,介紹了在UART實用化設計中所遇到的一些重要問題、解決方案以及最終結果。

2 UART及ST16C550概述

UART是廣泛使用的串行數據傳輸協議,它在收發分離的串行鏈路上進行全雙工異步通信。發送過程接收來自數據總線上的并行數據,按照低位序方式并串轉換,然后根據控制寄存器的設置生成串行數據流;相應的,接收過程把串行數據流轉換成并行數據,產生中斷以及狀態信息,并對數據傳輸過程中的異常進行處理。

ST16C550是廣泛使用的一款UART接口芯片,是NS16C550的改進版本。它收發均帶有16字節的FIFO,可以通過設定波特率設置寄存器來進行收發時鐘的分頻控制,傳輸速率從50bps到1.5Mbps。具體內容可參見數據手冊。

3 實用化設計的主要問題和解決方案

3.1 框架設計

根據UART的功能和數據流特點,系統劃分為5個模塊:時鐘生成模塊,完成時鐘分頻和時鐘分配;界面模塊,完成UART其它模塊和數據總線的交互;發送模塊,緩沖接收到的數據并按照設置生成串行信號;接收模塊,按照設置將接收信號串并變換并將數據送到FIFO中;Modem模塊完成與Modem信息交互和控制,功能相對簡單獨立。

3.2 時鐘域的劃分

在同步電路設計中,減小時鐘數量可簡化設計,提高系統的穩定性。不相關的時鐘域之間的數據傳遞不可避免的存在亞穩態問題,帶來穩定性能的下降。時鐘速率與功耗呈線性關系,當工藝一定時,低功耗設計要求我們降低時鐘頻率和信號翻轉次數。下面從這些設計策略和通信效率來分析不同時鐘域劃分方案。

方案一:低速時鐘方案。首先根據控制寄存器的設置對外部提供的時鐘進行分頻,生成全局唯一的時鐘。這種方案的優點是系統實現簡單、面積最小、功耗最低。缺點也很明顯,CPU時鐘遠遠高于芯片的工作時鐘,與UART傳遞數據時將占用CPU過多的時間。

方案二:高速時鐘方案。系統直接采用外部提供的時鐘為唯一時鐘,根據控制寄存器的設置生成收發模塊的同步時鐘使能信號,來達到分頻的目的。這種方案全局只有一個時鐘,設計簡單。唯一缺點是功耗較大。

在實際設計中,綜合考慮效率和功耗的要求,采用了兩個關聯時鐘的方案。與CPU的接口界面直接采用外部提供的最高時鐘信號,而其它模塊采用由波特率設置寄存器控制的分頻時鐘。這樣在系統中存在兩個關聯的時鐘域,設計時需要對兩個時鐘域邊界的邏輯進行分析和處理。

3.3 時鐘分頻

同步數字電路設計中,時鐘是整個電路中最重要的信號。時鐘信號上的毛刺會引起系統的邏輯混亂,大規模的數字芯片還對時鐘歪斜(Clock skew)和負載提出了要求。為了適應這些需求,FPGA內部一般設有數量不等的全局時鐘網絡。

使用同步計數器或狀態機進行時鐘分頻是一種較好的方案。在設計中計數器或狀態機應直接產生分頻時鐘信號,而不應該對計數器或狀態機進行譯碼來產生時鐘信號,因為譯碼等組合邏輯可能給時鐘帶來毛刺,引起系統不穩定。UART當波特率設置寄存器為0或1時,時鐘信號不需要分頻,故分頻電路中使用了一個多路選擇器。

3.4 異步時鐘與亞穩態

UART使用獨立的時鐘信號,使得CPU與UART以及UART之間的信號都處在不同的時鐘域。為了減少時序上的沖突,跨時鐘域的數據傳遞首先需要同步處理。但由于時鐘頻率和相位的差異,就不可避免存在亞穩態問題[2]。所謂亞穩態,是指觸發器/鎖存器的輸入信號時序不能滿足設置時間和保持時間的要求,將有可能使得觸發器/鎖存器的輸出沒有正確的鎖定到邏輯0或邏輯1,處在一個未知的狀態,如滯留在中間狀態,或者震蕩。這里以SN74ABT7819的參數為例來分析亞穩態、說明提高系統穩定性的方法。

亞穩態滯留時間是隨機的,服從參量為?的負指數分布。T0表示器件進入亞穩態可能性的孔徑時間。SN74ABT7819在室溫、5V電壓時,t=0.30ns,T0=7ps,輸入信號建立時間TSU1=5ns,傳播延時TPD1=9ns,芯片內部觸發器建立時間以及傳播延時約TPD2+TSU2=1.3ns。設定觸發器異步輸入信號邊沿頻率FD=10MHz,芯片工作頻率即觸發器時鐘FC=50MHZ。則每個接收外界輸入信號的觸發器平均失效時間MTBF(the Mean Time Between Failures)為:

系統中有多路并行信號跨越不同的時鐘域,這樣系統總的MTBF會很小,將以小時或分鐘計。可見單觸發器同步電路不能滿足穩定性的要求。為了減小亞穩態的影響,將亞穩態控制在時鐘域邊界,可以采用傳統的握手通訊方式[4]或者雙觸發器同步電路,前一方案在通信速率較低時有效,后者則在實踐中廣泛使用,這里僅對后者進一步說明。三級觸發器同步電路一般是不必要的。

異步輸入經過兩級觸發器同步生成同步輸出。即使第一個觸發器輸出存在亞穩態,經過一個時鐘周期后,第二個觸發器輸出仍處于亞穩態的概率非常小,此電路的平均失效時間MTBF已經是一個無限長的時間:

Xilinx未給出Virtex II系列的亞穩態描述參數,它能工作在更高的時鐘頻率上,亞穩態的參數會比SN74ABT7819優秀。但以上分析和設計規則依然適用。

3.5 同步FIFO的設計

設計中根據收發模塊對狀態標志要求的不同,分別進行同步FIFO的設計以節約邏輯資源。其中,發送模塊的FIFO只需要全空/全滿標志,采用地址相等不相等的比較邏輯和地址繞回指示位來產生。具體過程為:地址隨著相應的操作遞增,寫指針由內存的最后位置返回到初始位置時將地址繞回指示位置1,讀指針返回時則置0。因此,當讀寫指針地址相同時,若地址繞回指示位為0,則讀寫指針經歷了相同次數的循環移動, FIFO處于空狀態(圖4a);若地址繞回指示位為1,則寫指針比讀指針多循環一次,FIFO處于滿狀態。

接收模塊需要在FIFO中數據量達到一個設定的數值時產生一個中斷,由于設定的數值是任意的,這樣空/滿標記的產生必須使用減法器,消耗的邏輯資源稍大。綜合后的邏輯資源使用情況也說明了這點。

3.6 鎖存器的使用

使電路復雜化的常見原因之一是設計中存在許多不必要的鎖存器,使得電路復雜,工作速度降低,系統可靠性變差。綜合時應該仔細檢查是否合理使用了鎖存器。由于UART接口的功能特點,設計中共使用了4個鎖存器,用來鎖存A(2:0)和CSn信號。當UART和CPU總線處在同一個芯片中時,這些鎖存器可以用寄存器取代。

4 綜合結果

整個設計以VHDL語言來實現。在SYNOPSYS Design Compiler中使用LSI_10K庫,設定系統工作頻率為25MHz,其他使用預定的選項,綜合后最大路徑延時為10.66ns,預期工作頻率大于90MHz。資源使用情況如表1所示。

在XC2V1000-6芯片中,以Synplify為綜合工具,則使用了188個寄存器,占用了1%的邏輯資源。最大路徑延遲預期9.043ns,預期工作頻率110MHz。

5 仿真與驗證

設計中對UART各模塊分別撰寫了相應的測試程序,驗證了各模塊的正確性。然后把這些模塊裝配在一起,在系統級上再進行了接收、發送和中斷功能的門級驗證。這種模塊化分層次的驗證過程在調試中有效地縮小了查找錯誤的范圍,提高了調試效率并保證了代碼的健壯性。

6 結束語

穩定性和低功耗是嵌入式通信系統的重要設計目標。實現需要的功能有時并不困難,難的是提高系統穩定性和有效降低功耗。時鐘的規劃和亞穩態的處理與這兩個目標有著非常密切的關系,是實用化設計關注的重點之一。通過穩定性、功耗與資源等方面的綜合考慮,該設計在所實現的軟件無線電硬件平臺上得到了成功應用,達到了實用化設計的目標。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21798

    瀏覽量

    606067
  • 無線
    +關注

    關注

    31

    文章

    5470

    瀏覽量

    173841
  • vhdl
    +關注

    關注

    30

    文章

    817

    瀏覽量

    128346
收藏 人收藏

    評論

    相關推薦

    分享一款不錯的基于VHDL異步串行通信電路設計

    求一款基于VHDL異步串行通信電路設計分享
    發表于 04-08 06:16

    怎么實現基于CPLD的異步串行通訊控制器的設計?

    了設計方案的正確,而且加載了該設計程序的CPLD實際工程中能夠很好地與處理器進行連接來收發數據,從而為那些沒有串行異步接口的處理器提供一個比較理想的設計方案。
    發表于 05-28 06:53

    通用異步收發器與通用同步異步串行接收/發送器有哪些差異呢

    UART是什么?USART又是什么?通用異步收發器與通用同步異步串行接收/發送器有哪些差異呢?
    發表于 12-10 06:45

    抗惡劣環境下的異步串行接口電路設計

    抗惡劣環境下的異步串行接口電路設計
    發表于 05-14 13:21 ?17次下載

    同步串行SPIAD7888與AT90S8515接口中的應用

    高速串行模數轉換器AD7888與AVR單片機AT90S8515的接口中采用同步串行接口SPI技術,實現起來十分方便。本文介紹了AD7888
    發表于 08-19 08:46 ?91次下載

    通用異步串行接口VHDL實用化設計

    通用異步串行接口(Universal Asynchronous Receiver Transmitter,UART)通信、控制等領域得到了
    發表于 09-02 11:06 ?23次下載

    基于SOC技術設計可復用的異步串行通信接口IP 核

            基于SOC(system on chip)技術,利用VHDL 語言設計開發具有奇偶校驗功能、數據位和波特率可調的通用異步
    發表于 09-04 08:49 ?8次下載

    通用異步串行接口VHDL實用化設計

    通用異步串行接口(Universal Asynchronous Receiver Transmitter,UART)通信、控制等領域得到了
    發表于 11-30 15:34 ?19次下載

    異步串行通信接口電路的VHDL語言設計

    摘要:提出了1種基于CPLD、EPLD或FPGA等可編程邏輯器件的異步串行通信接口電路的設計方法。該方法簡單快捷。易于實現。而且可以作為異步串行
    發表于 04-30 09:58 ?46次下載

    Camera Link接口異步FIFO設計與實現

    介紹了異步FIFOCamera Link接口中的應用,將Camera Link接口中的幀有效信號FVAL和行有效信號LVAL引入到異步FI
    發表于 07-28 16:08 ?32次下載

    基于TL16C752B的DSP通用異步串行接口設計

    摘要:介紹了浮點DSP處理器TMS320C33和異步串行接口協議芯片TL16C752B的特點,分析了其接口信號及時序。基于復雜可編程邏輯器件(CPLD)設計了DSP處理器和TL16C7
    發表于 02-24 22:42 ?98次下載

    異步串行接口UART的C語言編程

    異步串行接口UART的C語言編程,快來下載學習啊
    發表于 07-04 14:01 ?8次下載

    設計基于FPGA的串行通用異步收發器

    UART(Universal Asynchronous Receiver Transmitter通用異步收發器)是一種應用廣泛的短距離串行傳輸接口。常常用于短距離、低速、低成本的通訊中
    發表于 08-12 17:46 ?895次閱讀
    設計基于FPGA的<b class='flag-5'>串行</b><b class='flag-5'>通用</b><b class='flag-5'>異步</b>收發器

    為什么要在串行通信接口中設置地線呢

    串行通信接口中,為何要設置地線?
    的頭像 發表于 02-02 17:47 ?3375次閱讀

    異步串行接口有哪些,異步串行接口為何需要波特率

    現代電子通信領域,異步串行接口作為數據交換的一種基本方式,廣泛應用于各種嵌入式系統、計算機設備以及遠程通信網絡中。本文將深入探討異步
    的頭像 發表于 01-29 14:47 ?124次閱讀
    波克棋牌完整版下载| 百家乐官网扑克片礼服| 百家乐官网玩法教程| 百家乐赌博导航| 开心8娱乐城| JJ百家乐官网的玩法技巧和规则 | 澳门顶级赌场手机在线登陆| 百家乐官网公式书| 百家乐百姓话题| 名人线上娱乐城| 百家乐长玩必输| 瑞鑫棋牌下载| 嬴澳门百家乐官网的公式| 百家乐博彩平台| 世博娱乐城| 24山在风水中的作用| 235棋牌游戏| 百家乐官网桌布动物| 顶级赌场| 龙博百家乐官网的玩法技巧和规则| 大发888bet亚洲lm0| 真人百家乐官网国际第一品牌| 太阳城申博娱乐| 百家乐官网桌布尼布材质| 大发888博狗博彩| 百家乐官网娱乐网网77scs| 威尼斯人娱乐场色碟| 网上百家乐官网做假| 大发888攻略| 闲和庄百家乐官网赌场娱乐网规则| 百家乐网站东方果博| 深州市| HG百家乐大转轮| 百家乐官网视频聊天游戏| 博彩网百家乐的玩法技巧和规则 | 免费玩百家乐的玩法技巧和规则| gt百家乐官网平台假吗| 百家乐庄闲和的倍数| 百家乐官网推锅| 大发888赌博违法吗| 奔驰百家乐游戏|