0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

FPGA同步轉(zhuǎn)換FPGA對(duì)輸入信號(hào)的處理

FPGA設(shè)計(jì)論壇 ? 來(lái)源:未知 ? 2023-02-17 11:10 ? 次閱讀
由于信號(hào)在不同時(shí)鐘域之間傳輸,容易發(fā)生亞穩(wěn)態(tài)的問題導(dǎo)致,不同時(shí)鐘域之間得到的信號(hào)不同。處理亞穩(wěn)態(tài)常用打兩拍的處理方法。多時(shí)鐘域的處理方法很多,最有效的方法異步fifo,具體可以參考博主的verilog異步fifo設(shè)計(jì),仿真(代碼供參考)異步fifo適合處理不同時(shí)鐘域之間傳輸?shù)臄?shù)據(jù)組,但有時(shí)不同時(shí)鐘域之間僅僅傳遞脈沖,異步fifo就顯的有點(diǎn)大材小用的,因此單信號(hào)的跨時(shí)鐘域處理通常有, 兩級(jí)寄存器串聯(lián)。 脈沖同步器。 結(jié)繩法。 采用握手。 我們像主要討論一下跨時(shí)鐘域的同步: 我們將問題分解為2部分,來(lái)自同步時(shí)鐘域信號(hào)的處理和來(lái)自異步時(shí)鐘域信號(hào)的處理。前者要簡(jiǎn)單許多,所以先討論前者,再討論后者。 1.同步時(shí)鐘域信號(hào)的處理 一般來(lái)說(shuō),在全同步設(shè)計(jì)中,如果信號(hào)來(lái)自同一時(shí)鐘域,各模塊的輸入不需要寄存。只要滿足建立時(shí)間,保持時(shí)間的約束,可以保證在時(shí)鐘上升沿到來(lái)時(shí),輸入信號(hào)已經(jīng)穩(wěn)定,可以采樣得到正確的值。但是如果模塊需要使用輸入信號(hào)的跳變沿(比如幀同步信號(hào)),千萬(wàn)不要直接這樣哦。

always @ (posedge inputs)

begin

...

end

因?yàn)檫@個(gè)時(shí)鐘inputs很有問題。如果begin ... end語(yǔ)句段涉及到多個(gè)D觸發(fā)器,你無(wú)法保證這些觸發(fā)器時(shí)鐘輸入的跳變沿到達(dá)的時(shí)刻處于同一時(shí)刻(準(zhǔn)確的說(shuō)是相差在一個(gè)很小的可接受的范圍)。因此,如果寫出這樣的語(yǔ)句,EDA工具多半會(huì)報(bào)clock skew > data delay,造成建立/保持時(shí)間的沖突。本人曾經(jīng)也寫出過(guò)這樣的語(yǔ)句,當(dāng)時(shí)是為了做分頻,受大二學(xué)的數(shù)字電路的影響,直接拿計(jì)數(shù)器的輸出做了后面模塊的時(shí)鐘。當(dāng)初用的開發(fā)工具是max+plusII,編譯也通過(guò)了,燒到板子上跑倒也能跑起來(lái)(估計(jì)是因?yàn)闀r(shí)鐘頻率較低, 6M ),但后來(lái)拿到QuartusII中編譯就報(bào)clock skew > data delay。大家可能會(huì)說(shuō)分頻電路很常見的啊,分頻輸出該怎么用呢。我一直用的方法是采用邊沿檢測(cè)電路,用HDL語(yǔ)言描述大概是這樣:

always @ (posedge Clk)

begin

inputs_reg <= inputs;

if (inputs_reg == 1'b0 && inputs == 1'b1)

begin

...

end

...

end

這是上跳沿檢測(cè)的電路,下跳沿電路大家依此類推。 2.異步時(shí)鐘域信號(hào)的處理 這個(gè)問題也得分單一信號(hào)和總線信號(hào)來(lái)討論 2.1單一信號(hào)(如控制信號(hào))的處理 如果這個(gè)輸入信號(hào)來(lái)自異步時(shí)鐘域(比如FPGA芯片外部的輸入),一般采用同步器進(jìn)行同步。最基本的結(jié)構(gòu)是兩個(gè)緊密相連的觸發(fā)器,第一拍將輸入信號(hào)同步化,同步化后的輸出可能帶來(lái)建立/保持時(shí)間的沖突,產(chǎn)生亞穩(wěn)態(tài)。需要再寄存一拍,減少(注意是減少)亞穩(wěn)態(tài)帶來(lái)的影響。這種最基本的結(jié)構(gòu)叫做電平同步器。 如果我們需要用跳變沿而不是電平又該怎樣處理呢,還記得1里面講的邊沿檢測(cè)電路么?在電平同步器之后再加一級(jí)觸發(fā)器,用第二級(jí)觸發(fā)器的輸出和第三級(jí)觸發(fā)器的輸出來(lái)進(jìn)行操作。這種結(jié)構(gòu)叫做邊沿同步器。

always @ (posedge Clk)

begin

inputs_reg1 <= inputs;

inputs_reg2 <= inputs_reg1;

inputs_reg3 <= inputs_reg2;

if (inputs_reg2 == 1'b1 && inputs_reg3 == 1'b0)

begin

...

end

...

end

以上兩種同步器在慢時(shí)鐘域信號(hào)同步入快時(shí)鐘域時(shí)工作的很好,但是反過(guò)來(lái)的話,可能就工作不正常了。舉一個(gè)很簡(jiǎn)單的例子,如果被同步的信號(hào)脈沖只有一個(gè)快時(shí)鐘周期寬,且位于慢時(shí)鐘的兩個(gè)相鄰跳變沿之間,那么是采不到的。這時(shí)就需要采用脈沖同步器。這種同步器也是由3個(gè)觸發(fā)器組成。 脈沖同步器 由于脈沖在快時(shí)鐘域傳遞到慢時(shí)鐘域時(shí),慢時(shí)鐘有時(shí)無(wú)法采樣的信號(hào)奈奎是特采樣定理,因此需要對(duì)信號(hào)進(jìn)行處理,可以讓慢信號(hào)采樣到。脈沖同步器的結(jié)果如圖:7f76f704-ae70-11ed-bfe3-dac502259ad0.png ? ? 2.2總線信號(hào)的處理 如果簡(jiǎn)單的對(duì)異步時(shí)鐘域過(guò)來(lái)的一組信號(hào)分別用同步器的話,那么對(duì)這一組信號(hào)整體而言,亞穩(wěn)態(tài)出現(xiàn)的幾率將大大上升?;谶@一觀點(diǎn),對(duì)于總線信號(hào)的處理可以有兩種方式。 如果這組信號(hào)只是順序變化的話(如存儲(chǔ)器的地址),可以將其轉(zhuǎn)換為格雷碼后再發(fā)送,由于格雷碼相鄰碼字只相差一個(gè)比特,上面說(shuō)的同步器可以很好的發(fā)揮作用 但是如果信號(hào)的變化是隨機(jī)的(如存儲(chǔ)器的數(shù)據(jù)),這種方法便失效了,這時(shí)可以采用握手的方式或者采用FIFO或DPRAM進(jìn)行緩存。RAM緩存的方式在突發(fā)數(shù)據(jù)傳輸中優(yōu)勢(shì)比較明顯,現(xiàn)在高檔一點(diǎn)的FPGA中都有不少的BlockRAM資源,且支持配置為DPRAM或FIFO,這種處理方法在通信電路中非常常用。

7f84c05a-ae70-11ed-bfe3-dac502259ad0.jpg

精彩推薦 至芯科技12年不忘初心、再度起航2月11日北京中心FPGA工程師就業(yè)班開課、線上線下多維教學(xué)、歡迎咨詢! 基于FPGA的千兆以太網(wǎng)ARP和UDP的實(shí)現(xiàn) FPGA學(xué)習(xí)-基于FPGA的圖像處理掃碼加微信邀請(qǐng)您加入FPGA學(xué)習(xí)交流群

7f92ad3c-ae70-11ed-bfe3-dac502259ad0.jpg7fa301f0-ae70-11ed-bfe3-dac502259ad0.png

歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點(diǎn)個(gè)在看你最好看


原文標(biāo)題:FPGA同步轉(zhuǎn)換FPGA對(duì)輸入信號(hào)的處理

文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


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

    關(guān)注

    1641

    文章

    21910

    瀏覽量

    611619

原文標(biāo)題:FPGA同步轉(zhuǎn)換FPGA對(duì)輸入信號(hào)的處理

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    進(jìn)群免費(fèi)領(lǐng)FPGA學(xué)習(xí)資料!數(shù)字信號(hào)處理、傅里葉變換與FPGA開發(fā)等

    進(jìn)群免費(fèi)領(lǐng)FPGA學(xué)習(xí)資料啦!小編整理了數(shù)字信號(hào)處理、傅里葉變換與FPGA開發(fā)等FPGA必看資料,需要的小伙伴可以加小助手(微信:elecf
    發(fā)表于 04-07 16:41

    使用FPGA控制ADS8365模數(shù)轉(zhuǎn)換,沒有EOC輸出,FPGA無(wú)法讀取數(shù)據(jù),為什么?

    大家好,我使用FPGA控制ADS8365模數(shù)轉(zhuǎn)換,以前的使用沒問題,突然現(xiàn)在出現(xiàn)問題,我檢查FPGA的控制信號(hào),都正常,就是沒有EOC輸出,FPG
    發(fā)表于 01-08 08:25

    FPGA 實(shí)時(shí)信號(hào)處理應(yīng)用 FPGA在圖像處理中的優(yōu)勢(shì)

    現(xiàn)場(chǎng)可編程門陣列(FPGA)是一種高度靈活的硬件平臺(tái),它允許開發(fā)者根據(jù)特定應(yīng)用需求定制硬件邏輯。在實(shí)時(shí)信號(hào)處理和圖像處理領(lǐng)域,FPGA因其獨(dú)
    的頭像 發(fā)表于 12-02 10:01 ?1446次閱讀

    FPGA 與微控制器優(yōu)缺點(diǎn)比較

    和可編程互連組成。它們的主要優(yōu)點(diǎn)是并行處理能力極強(qiáng),可以同時(shí)執(zhí)行多個(gè)操作,這使得FPGA在需要高速數(shù)據(jù)處理的應(yīng)用中表現(xiàn)出色,如數(shù)字信號(hào)處理
    的頭像 發(fā)表于 12-02 09:58 ?971次閱讀

    FPGA里面例化了8個(gè)jesd204B的ip核同步接收8塊AFE芯片的信號(hào),怎么連接設(shè)備時(shí)鐘和sysref到AFE和FPGA?

    各位有人用過(guò)AFE58JD48嗎,我在FPGA里面例化了8個(gè)jesd204B的ip核同步接收8塊AFE芯片的信號(hào),怎么連接設(shè)備時(shí)鐘和sysref到AFE和FPGA?我看LMK0482
    發(fā)表于 11-18 07:51

    FPGA復(fù)位的8種技巧

    其它輸入引腳類似,對(duì) FPGA 來(lái)說(shuō)往往是異步的。設(shè)計(jì)人員可以使用這個(gè)信號(hào)FPGA 內(nèi)部對(duì)自己的設(shè)計(jì)進(jìn)行異步或者同步復(fù)位。 不過(guò)在一些提
    的頭像 發(fā)表于 11-16 10:18 ?849次閱讀
    <b class='flag-5'>FPGA</b>復(fù)位的8種技巧

    FPGA在數(shù)據(jù)處理中的應(yīng)用實(shí)例

    FPGA(現(xiàn)場(chǎng)可編程門陣列)在數(shù)據(jù)處理領(lǐng)域有著廣泛的應(yīng)用,其高度的靈活性和并行處理能力使其成為許多高性能數(shù)據(jù)處理系統(tǒng)的核心組件。以下是一些FPGA
    的頭像 發(fā)表于 10-25 09:21 ?1035次閱讀

    FPGA無(wú)芯片怎么進(jìn)行HDMI信號(hào)輸入

    FPGA 在無(wú)外部PHY芯片情況下輸出HDMI,目前是比較成熟的方案(外部電路需要轉(zhuǎn)換成TMDS電平)。在無(wú)PHY芯片情況下怎么進(jìn)行HDMI信號(hào)輸入呢?
    的頭像 發(fā)表于 10-24 18:11 ?2029次閱讀
    <b class='flag-5'>FPGA</b>無(wú)芯片怎么進(jìn)行HDMI<b class='flag-5'>信號(hào)</b><b class='flag-5'>輸入</b>

    同步與多個(gè)FPGA接口的千兆樣本ADC

    電子發(fā)燒友網(wǎng)站提供《同步與多個(gè)FPGA接口的千兆樣本ADC.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 11:32 ?0次下載
    <b class='flag-5'>同步</b>與多個(gè)<b class='flag-5'>FPGA</b>接口的千兆樣本ADC

    實(shí)現(xiàn)下一代具有電壓電平轉(zhuǎn)換功能的處理器、FPGA 和ASSP

    電子發(fā)燒友網(wǎng)站提供《實(shí)現(xiàn)下一代具有電壓電平轉(zhuǎn)換功能的處理器、FPGA 和ASSP.pdf》資料免費(fèi)下載
    發(fā)表于 09-09 09:46 ?0次下載
    實(shí)現(xiàn)下一代具有電壓電平<b class='flag-5'>轉(zhuǎn)換</b>功能的<b class='flag-5'>處理</b>器、<b class='flag-5'>FPGA</b> 和ASSP

    AD采集FPGA做fft處理信號(hào)的問題

    是不是就是20KHz呢?這樣是不是就能滿足每通道采樣頻率為信號(hào)頻率的4倍呢? 對(duì)采集到的信號(hào)進(jìn)行fft處理,以得到指定頻率點(diǎn)的幅度值,指定的頻率點(diǎn)都集中在200Hz以內(nèi),且都精確到了小數(shù)點(diǎn)后一位,也就是說(shuō)
    發(fā)表于 08-29 09:22

    FPGA同步復(fù)位和異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)中的復(fù)位操作是設(shè)計(jì)過(guò)程中不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動(dòng)和穩(wěn)定運(yùn)行。在FPGA設(shè)計(jì)中,復(fù)位方式主要分為同步復(fù)
    的頭像 發(fā)表于 07-17 11:12 ?2235次閱讀

    FPGA異步信號(hào)處理方法

    FPGA(現(xiàn)場(chǎng)可編程門陣列)在處理異步信號(hào)時(shí),需要特別關(guān)注信號(hào)同步化、穩(wěn)定性以及潛在的亞穩(wěn)態(tài)問題。由于異步
    的頭像 發(fā)表于 07-17 11:10 ?1644次閱讀

    FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理

    的精度 圖像處理的算法中,大部分需要采用浮點(diǎn)數(shù)運(yùn)算,而浮點(diǎn)數(shù)運(yùn)算在FPGA中是非常不劃算的,因此需要轉(zhuǎn)換成定點(diǎn)數(shù)計(jì)算,此時(shí)會(huì)設(shè)計(jì)到浮點(diǎn)運(yùn)算轉(zhuǎn)定點(diǎn)運(yùn)算時(shí)精度下降的問題。 3.軟件和硬件的合理劃分 這里
    發(fā)表于 06-12 16:26

    FPGA基礎(chǔ)知識(shí)學(xué)習(xí)

    可以執(zhí)行各種邏輯操作(如與、或、非、異或等),將輸入信號(hào)轉(zhuǎn)換為輸出信號(hào)。這些邏輯門通過(guò)FPGA內(nèi)部的互連網(wǎng)絡(luò)相互連接,從而形成一個(gè)復(fù)雜的邏輯
    發(fā)表于 04-29 23:26

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品