chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VHDL在通用異步串行接口中的實(shí)用設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-10-09 09:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 引言

FPGA從實(shí)現(xiàn)粘合邏輯逐步發(fā)展成為設(shè)計(jì)平臺(tái)的核心,在電子、通信以及航空航天等領(lǐng)域得到了廣泛應(yīng)用。本人最近實(shí)現(xiàn)的中頻軟件無(wú)線電硬件平臺(tái),就以FPGA為核心,實(shí)現(xiàn)上變頻、下變頻等中頻數(shù)字信號(hào)處理,并且構(gòu)成A/D/A、DSPARM模塊之間的通信中心。這種以FPGA為核心的架構(gòu)使得硬件平臺(tái)結(jié)構(gòu)靈活,具有可重構(gòu)性,為軟件無(wú)線電的各種算法分配方案提供了有力支撐。

除了和TMS320C6416之間的數(shù)據(jù)流采用EMIF接口外,F(xiàn)PGA的其它接口均采用UART。為了軟件開發(fā)和移植的便利,UART設(shè)計(jì)要做到兼容ST16C550的功能。穩(wěn)定可靠則是作為軟件無(wú)線電硬件平臺(tái)關(guān)鍵接口的基本要求??紤]到嵌入式系統(tǒng)的特點(diǎn),在設(shè)計(jì)中應(yīng)盡量降低功耗。本文圍繞這些目標(biāo),介紹了在UART實(shí)用化設(shè)計(jì)中所遇到的一些重要問(wèn)題、解決方案以及最終結(jié)果。

2 UART及ST16C550概述

UART是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議,它在收發(fā)分離的串行鏈路上進(jìn)行全雙工異步通信。發(fā)送過(guò)程接收來(lái)自數(shù)據(jù)總線上的并行數(shù)據(jù),按照低位序方式并串轉(zhuǎn)換,然后根據(jù)控制寄存器的設(shè)置生成串行數(shù)據(jù)流;相應(yīng)的,接收過(guò)程把串行數(shù)據(jù)流轉(zhuǎn)換成并行數(shù)據(jù),產(chǎn)生中斷以及狀態(tài)信息,并對(duì)數(shù)據(jù)傳輸過(guò)程中的異常進(jìn)行處理。

ST16C550是廣泛使用的一款UART接口芯片,是NS16C550的改進(jìn)版本。它收發(fā)均帶有16字節(jié)的FIFO,可以通過(guò)設(shè)定波特率設(shè)置寄存器來(lái)進(jìn)行收發(fā)時(shí)鐘的分頻控制,傳輸速率從50bps到1.5Mbps。具體內(nèi)容可參見(jiàn)數(shù)據(jù)手冊(cè)。

3 實(shí)用化設(shè)計(jì)的主要問(wèn)題和解決方案

3.1 框架設(shè)計(jì)

根據(jù)UART的功能和數(shù)據(jù)流特點(diǎn),系統(tǒng)劃分為5個(gè)模塊:時(shí)鐘生成模塊,完成時(shí)鐘分頻和時(shí)鐘分配;界面模塊,完成UART其它模塊和數(shù)據(jù)總線的交互;發(fā)送模塊,緩沖接收到的數(shù)據(jù)并按照設(shè)置生成串行信號(hào);接收模塊,按照設(shè)置將接收信號(hào)串并變換并將數(shù)據(jù)送到FIFO中;Modem模塊完成與Modem信息交互和控制,功能相對(duì)簡(jiǎn)單獨(dú)立。

3.2 時(shí)鐘域的劃分

在同步電路設(shè)計(jì)中,減小時(shí)鐘數(shù)量可簡(jiǎn)化設(shè)計(jì),提高系統(tǒng)的穩(wěn)定性。不相關(guān)的時(shí)鐘域之間的數(shù)據(jù)傳遞不可避免的存在亞穩(wěn)態(tài)問(wèn)題,帶來(lái)穩(wěn)定性能的下降。時(shí)鐘速率與功耗呈線性關(guān)系,當(dāng)工藝一定時(shí),低功耗設(shè)計(jì)要求我們降低時(shí)鐘頻率和信號(hào)翻轉(zhuǎn)次數(shù)。下面從這些設(shè)計(jì)策略和通信效率來(lái)分析不同時(shí)鐘域劃分方案。

方案一:低速時(shí)鐘方案。首先根據(jù)控制寄存器的設(shè)置對(duì)外部提供的時(shí)鐘進(jìn)行分頻,生成全局唯一的時(shí)鐘。這種方案的優(yōu)點(diǎn)是系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單、面積最小、功耗最低。缺點(diǎn)也很明顯,CPU時(shí)鐘遠(yuǎn)遠(yuǎn)高于芯片的工作時(shí)鐘,與UART傳遞數(shù)據(jù)時(shí)將占用CPU過(guò)多的時(shí)間。

方案二:高速時(shí)鐘方案。系統(tǒng)直接采用外部提供的時(shí)鐘為唯一時(shí)鐘,根據(jù)控制寄存器的設(shè)置生成收發(fā)模塊的同步時(shí)鐘使能信號(hào),來(lái)達(dá)到分頻的目的。這種方案全局只有一個(gè)時(shí)鐘,設(shè)計(jì)簡(jiǎn)單。唯一缺點(diǎn)是功耗較大。

在實(shí)際設(shè)計(jì)中,綜合考慮效率和功耗的要求,采用了兩個(gè)關(guān)聯(lián)時(shí)鐘的方案。與CPU的接口界面直接采用外部提供的最高時(shí)鐘信號(hào),而其它模塊采用由波特率設(shè)置寄存器控制的分頻時(shí)鐘。這樣在系統(tǒng)中存在兩個(gè)關(guān)聯(lián)的時(shí)鐘域,設(shè)計(jì)時(shí)需要對(duì)兩個(gè)時(shí)鐘域邊界的邏輯進(jìn)行分析和處理。

3.3 時(shí)鐘分頻

同步數(shù)字電路設(shè)計(jì)中,時(shí)鐘是整個(gè)電路中最重要的信號(hào)。時(shí)鐘信號(hào)上的毛刺會(huì)引起系統(tǒng)的邏輯混亂,大規(guī)模的數(shù)字芯片還對(duì)時(shí)鐘歪斜(Clock skew)和負(fù)載提出了要求。為了適應(yīng)這些需求,F(xiàn)PGA內(nèi)部一般設(shè)有數(shù)量不等的全局時(shí)鐘網(wǎng)絡(luò)。

使用同步計(jì)數(shù)器或狀態(tài)機(jī)進(jìn)行時(shí)鐘分頻是一種較好的方案。在設(shè)計(jì)中計(jì)數(shù)器或狀態(tài)機(jī)應(yīng)直接產(chǎn)生分頻時(shí)鐘信號(hào),而不應(yīng)該對(duì)計(jì)數(shù)器或狀態(tài)機(jī)進(jìn)行譯碼來(lái)產(chǎn)生時(shí)鐘信號(hào),因?yàn)樽g碼等組合邏輯可能給時(shí)鐘帶來(lái)毛刺,引起系統(tǒng)不穩(wěn)定。UART當(dāng)波特率設(shè)置寄存器為0或1時(shí),時(shí)鐘信號(hào)不需要分頻,故分頻電路中使用了一個(gè)多路選擇器。

3.4 異步時(shí)鐘與亞穩(wěn)態(tài)

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

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

系統(tǒng)中有多路并行信號(hào)跨越不同的時(shí)鐘域,這樣系統(tǒng)總的MTBF會(huì)很小,將以小時(shí)或分鐘計(jì)??梢?jiàn)單觸發(fā)器同步電路不能滿足穩(wěn)定性的要求。為了減小亞穩(wěn)態(tài)的影響,將亞穩(wěn)態(tài)控制在時(shí)鐘域邊界,可以采用傳統(tǒng)的握手通訊方式[4]或者雙觸發(fā)器同步電路,前一方案在通信速率較低時(shí)有效,后者則在實(shí)踐中廣泛使用,這里僅對(duì)后者進(jìn)一步說(shuō)明。三級(jí)觸發(fā)器同步電路一般是不必要的。

異步輸入經(jīng)過(guò)兩級(jí)觸發(fā)器同步生成同步輸出。即使第一個(gè)觸發(fā)器輸出存在亞穩(wěn)態(tài),經(jīng)過(guò)一個(gè)時(shí)鐘周期后,第二個(gè)觸發(fā)器輸出仍處于亞穩(wěn)態(tài)的概率非常小,此電路的平均失效時(shí)間MTBF已經(jīng)是一個(gè)無(wú)限長(zhǎng)的時(shí)間:

Xilinx未給出Virtex II系列的亞穩(wěn)態(tài)描述參數(shù),它能工作在更高的時(shí)鐘頻率上,亞穩(wěn)態(tài)的參數(shù)會(huì)比SN74ABT7819優(yōu)秀。但以上分析和設(shè)計(jì)規(guī)則依然適用。

3.5 同步FIFO的設(shè)計(jì)

設(shè)計(jì)中根據(jù)收發(fā)模塊對(duì)狀態(tài)標(biāo)志要求的不同,分別進(jìn)行同步FIFO的設(shè)計(jì)以節(jié)約邏輯資源。其中,發(fā)送模塊的FIFO只需要全空/全滿標(biāo)志,采用地址相等不相等的比較邏輯和地址繞回指示位來(lái)產(chǎn)生。具體過(guò)程為:地址隨著相應(yīng)的操作遞增,寫指針由內(nèi)存的最后位置返回到初始位置時(shí)將地址繞回指示位置1,讀指針?lè)祷貢r(shí)則置0。因此,當(dāng)讀寫指針地址相同時(shí),若地址繞回指示位為0,則讀寫指針經(jīng)歷了相同次數(shù)的循環(huán)移動(dòng), FIFO處于空狀態(tài)(圖4a);若地址繞回指示位為1,則寫指針比讀指針多循環(huán)一次,F(xiàn)IFO處于滿狀態(tài)。

接收模塊需要在FIFO中數(shù)據(jù)量達(dá)到一個(gè)設(shè)定的數(shù)值時(shí)產(chǎn)生一個(gè)中斷,由于設(shè)定的數(shù)值是任意的,這樣空/滿標(biāo)記的產(chǎn)生必須使用減法器,消耗的邏輯資源稍大。綜合后的邏輯資源使用情況也說(shuō)明了這點(diǎn)。

3.6 鎖存器的使用

使電路復(fù)雜化的常見(jiàn)原因之一是設(shè)計(jì)中存在許多不必要的鎖存器,使得電路復(fù)雜,工作速度降低,系統(tǒng)可靠性變差。綜合時(shí)應(yīng)該仔細(xì)檢查是否合理使用了鎖存器。由于UART接口的功能特點(diǎn),設(shè)計(jì)中共使用了4個(gè)鎖存器,用來(lái)鎖存A(2:0)和CSn信號(hào)。當(dāng)UART和CPU總線處在同一個(gè)芯片中時(shí),這些鎖存器可以用寄存器取代。

4 綜合結(jié)果

整個(gè)設(shè)計(jì)以VHDL語(yǔ)言來(lái)實(shí)現(xiàn)。在SYNOPSYS Design Compiler中使用LSI_10K庫(kù),設(shè)定系統(tǒng)工作頻率為25MHz,其他使用預(yù)定的選項(xiàng),綜合后最大路徑延時(shí)為10.66ns,預(yù)期工作頻率大于90MHz。資源使用情況如表1所示。

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

5 仿真與驗(yàn)證

設(shè)計(jì)中對(duì)UART各模塊分別撰寫了相應(yīng)的測(cè)試程序,驗(yàn)證了各模塊的正確性。然后把這些模塊裝配在一起,在系統(tǒng)級(jí)上再進(jìn)行了接收、發(fā)送和中斷功能的門級(jí)驗(yàn)證。這種模塊化分層次的驗(yàn)證過(guò)程在調(diào)試中有效地縮小了查找錯(cuò)誤的范圍,提高了調(diào)試效率并保證了代碼的健壯性。

6 結(jié)束語(yǔ)

穩(wěn)定性和低功耗是嵌入式通信系統(tǒng)的重要設(shè)計(jì)目標(biāo)。實(shí)現(xiàn)需要的功能有時(shí)并不困難,難的是提高系統(tǒng)穩(wěn)定性和有效降低功耗。時(shí)鐘的規(guī)劃和亞穩(wěn)態(tài)的處理與這兩個(gè)目標(biāo)有著非常密切的關(guān)系,是實(shí)用化設(shè)計(jì)關(guān)注的重點(diǎn)之一。通過(guò)穩(wěn)定性、功耗與資源等方面的綜合考慮,該設(shè)計(jì)在所實(shí)現(xiàn)的軟件無(wú)線電硬件平臺(tái)上得到了成功應(yīng)用,達(dá)到了實(shí)用化設(shè)計(jì)的目標(biāo)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1650

    文章

    22207

    瀏覽量

    626926
  • 無(wú)線
    +關(guān)注

    關(guān)注

    31

    文章

    5602

    瀏覽量

    177511
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    820

    瀏覽量

    130952
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    分享一款不錯(cuò)的基于VHDL異步串行通信電路設(shè)計(jì)

    求一款基于VHDL異步串行通信電路設(shè)計(jì)分享
    發(fā)表于 04-08 06:16

    怎么實(shí)現(xiàn)基于CPLD的異步串行通訊控制器的設(shè)計(jì)?

    了設(shè)計(jì)方案的正確,而且加載了該設(shè)計(jì)程序的CPLD實(shí)際工程中能夠很好地與處理器進(jìn)行連接來(lái)收發(fā)數(shù)據(jù),從而為那些沒(méi)有串行異步接口的處理器提供一個(gè)比較理想的設(shè)計(jì)方案。
    發(fā)表于 05-28 06:53

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

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

    抗惡劣環(huán)境下的異步串行接口電路設(shè)計(jì)

    抗惡劣環(huán)境下的異步串行接口電路設(shè)計(jì)
    發(fā)表于 05-14 13:21 ?17次下載

    同步串行SPIAD7888與AT90S8515接口中的應(yīng)用

    高速串行模數(shù)轉(zhuǎn)換器AD7888與AVR單片機(jī)AT90S8515的接口中采用同步串行接口SPI技術(shù),實(shí)現(xiàn)起來(lái)十分方便。本文介紹了AD7888
    發(fā)表于 08-19 08:46 ?91次下載

    通用異步串行接口VHDL實(shí)用化設(shè)計(jì)

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

    基于SOC技術(shù)設(shè)計(jì)可復(fù)用的異步串行通信接口IP 核

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

    通用異步串行接口VHDL實(shí)用化設(shè)計(jì)

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

    異步串行通信接口電路的VHDL語(yǔ)言設(shè)計(jì)

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

    Camera Link接口異步FIFO設(shè)計(jì)與實(shí)現(xiàn)

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

    基于TL16C752B的DSP通用異步串行接口設(shè)計(jì)

    摘要:介紹了浮點(diǎn)DSP處理器TMS320C33和異步串行接口協(xié)議芯片TL16C752B的特點(diǎn),分析了其接口信號(hào)及時(shí)序?;趶?fù)雜可編程邏輯器件(CPLD)設(shè)計(jì)了DSP處理器和TL16C7
    發(fā)表于 02-24 22:42 ?98次下載

    異步串行接口UART的C語(yǔ)言編程

    異步串行接口UART的C語(yǔ)言編程,快來(lái)下載學(xué)習(xí)啊
    發(fā)表于 07-04 14:01 ?8次下載

    設(shè)計(jì)基于FPGA的串行通用異步收發(fā)器

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

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

    串行通信接口中,為何要設(shè)置地線?
    的頭像 發(fā)表于 02-02 17:47 ?3877次閱讀

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

    現(xiàn)代電子通信領(lǐng)域,異步串行接口作為數(shù)據(jù)交換的一種基本方式,廣泛應(yīng)用于各種嵌入式系統(tǒng)、計(jì)算機(jī)設(shè)備以及遠(yuǎn)程通信網(wǎng)絡(luò)中。本文將深入探討異步
    的頭像 發(fā)表于 01-29 14:47 ?1364次閱讀