日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

《深入浅出玩转FPGA》笔记

發(fā)布時(shí)間:2024/9/27 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《深入浅出玩转FPGA》笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)于這本書,算是囫圇吞棗地讀完了。網(wǎng)上很多人推薦這本書,評(píng)價(jià)很不錯(cuò)。以我的觀點(diǎn)來看,確實(shí)是本不錯(cuò)的關(guān)于FPGA方面的書,作者確實(shí)經(jīng)驗(yàn)豐富,書中有很多值得學(xué)習(xí)的東西,但是可能不是很適合初學(xué)者看,比較適合有一定項(xiàng)目經(jīng)驗(yàn)的人讀。因?yàn)檫@本書本身就是將作者許多自己的親身經(jīng)歷總結(jié)出來的經(jīng)驗(yàn)編纂出來的,可能作者也是看煩了市面上一眾讀物都秉持著介紹某類知識(shí)一定要事無巨細(xì)地從頭說到尾的風(fēng)格,所以作者對(duì)基礎(chǔ)的介紹非常少。初學(xué)者學(xué)習(xí)FPGA的開發(fā)和調(diào)試去看作者另一本《FPGA/CPLD邊練邊學(xué)--快速入門Verilog/VHDL》比較好。

說到底,我作為菜鳥,這本書很多內(nèi)容我也還是一知半懂,可能還需要更多的積累。在這里記錄一下這本書給我的新收獲。

一、關(guān)于時(shí)鐘的設(shè)計(jì)要點(diǎn):

(1)避免使用門控時(shí)鐘或系統(tǒng)內(nèi)部邏輯產(chǎn)生的時(shí)鐘,多用使能時(shí)鐘去替代。

門控時(shí)鐘指的是在數(shù)據(jù)無效時(shí),將寄存器時(shí)鐘關(guān)閉的技術(shù),能夠有效降低功耗,是低功耗設(shè)計(jì)的重要方法之一。組合邏輯中多用門控時(shí)鐘,一般驅(qū)動(dòng)門控時(shí)鐘的邏輯都是只包含一個(gè)與門(或門)。如果有其它的附加邏輯,容易因競(jìng)爭(zhēng)產(chǎn)生不希望的毛刺。

(2)對(duì)于需要分頻或倍頻的時(shí)鐘,用器件內(nèi)部的專用時(shí)鐘管理(如PLL或DLL)單元去生成。

我的理解是FPGA內(nèi)部邏輯資源寶貴,用來做時(shí)鐘管理太浪費(fèi),而且有專用的干嘛不用呢。

(3)盡量對(duì)輸入的異步信號(hào)用時(shí)鐘進(jìn)行鎖存。

所謂異步信號(hào),是指兩個(gè)處于不同時(shí)鐘頻率或相位控制下的信號(hào)。這樣的信號(hào)在相互接口的時(shí)候如果沒有可靠的同步機(jī)制,則存在很大的隱患,甚至極有可能導(dǎo)致數(shù)據(jù)的誤采集。所以需要學(xué)習(xí)一些異步信號(hào)的同步機(jī)制。

(4)避免使用異步信號(hào)進(jìn)行復(fù)位或置位控制。

這一點(diǎn)很顯然,異步信號(hào)會(huì)增加毛刺出現(xiàn)的可能性。

?

二、提升系統(tǒng)性能的代碼風(fēng)格

(1)減少關(guān)鍵路徑的邏輯等級(jí)

很多時(shí)候時(shí)序不達(dá)要求是因?yàn)橛袔讞l關(guān)鍵路徑內(nèi)部邏輯門延時(shí)太長(zhǎng),可以通過修改代碼減少某些路徑的層級(jí),但通常會(huì)導(dǎo)致其他路徑多出一個(gè)或幾個(gè)邏輯門,“面積換速度”。

(2)邏輯復(fù)制(減少重載信號(hào)的散出)與資源共享

如果某個(gè)信號(hào)扇出比較大,插入buffer可以解決,但是會(huì)增加延時(shí)。通過邏輯復(fù)制,即復(fù)制產(chǎn)生這個(gè)信號(hào)的邏輯來驅(qū)動(dòng)后續(xù)電路,既使平均扇出降低又不增加延時(shí),但面積會(huì)增大。

資源共享是邏輯復(fù)制的逆過程,可以節(jié)省面積,但以犧牲速度為代價(jià)。

(3)消除組合邏輯的毛刺

引入時(shí)序邏輯,即添加寄存器來鎖存輸出結(jié)果,在時(shí)鐘有效沿再輸出。

?

三、異步復(fù)位、同步釋放

異步復(fù)位不穩(wěn)定,同步復(fù)位消耗額外資源。這種異步復(fù)位、同步釋放的雙緩沖電路根本思想是將異步信號(hào)同步化。

綜合后的電路:

四、乒乓操作及串并轉(zhuǎn)換設(shè)計(jì)

FPGA設(shè)計(jì)的重要思想有:面積換速度、乒乓操作及串并轉(zhuǎn)換設(shè)計(jì)、流水線設(shè)計(jì)、邏輯復(fù)制和模塊復(fù)用、模塊化設(shè)計(jì)等。

乒乓操作:一種數(shù)據(jù)流控制的處理技巧。

第一個(gè)周期,數(shù)據(jù)進(jìn)入緩沖區(qū)1;第二個(gè)周期,數(shù)據(jù)進(jìn)入緩沖區(qū)2,同時(shí)輸出數(shù)據(jù)選擇控制將緩沖區(qū)1內(nèi)的數(shù)據(jù)送出去;第三個(gè)周期,數(shù)據(jù)進(jìn)入緩沖區(qū)1,緩沖區(qū)2內(nèi)的數(shù)據(jù)被送出。如此循環(huán),可以實(shí)現(xiàn)數(shù)據(jù)的無縫緩沖和處理。

串并轉(zhuǎn)換:高速數(shù)據(jù)流處理的重要技巧之一。

串行輸入的數(shù)據(jù)通過FPGA內(nèi)部的n個(gè)移位寄存器后,最后并行輸出的是一個(gè)n位寬的并行總線數(shù)據(jù)。

?

五、同步設(shè)計(jì)的好處:

  • 有效避免異步信號(hào)通信產(chǎn)生的沖突;
  • 便于時(shí)序約束、時(shí)序分析及時(shí)序仿真;
  • 便于板級(jí)時(shí)序問題定位;
  • 有利于同器件間的代碼移植,減少重復(fù)設(shè)計(jì);
  • 最小化器件升級(jí)對(duì)同一工程帶來的影響。
  • 目前經(jīng)驗(yàn)尚淺,很多體會(huì)不是很深。

    ?

    六、專用握手信號(hào)

    握手通信原理,即通信雙方使用了專用控制信號(hào)進(jìn)行狀態(tài)指示,是一種常用的跨時(shí)鐘域信號(hào)處理方式。

    使用握手協(xié)議方式處理跨時(shí)鐘域數(shù)據(jù)傳輸時(shí),只需要雙方的握手信號(hào)(req和ack)分別使用脈沖檢測(cè)法進(jìn)行同步。具體實(shí)現(xiàn):發(fā)送域先將數(shù)據(jù)放入總線,然后發(fā)送req有效信號(hào)給接收域;接收域收到req有效信號(hào)后鎖存數(shù)據(jù)總線,然后回送ack有效信號(hào)給發(fā)送域;發(fā)送域接收到ack有效信號(hào)后撤銷當(dāng)前req信號(hào),接受域再檢測(cè)到req信號(hào)撤銷后也撤銷ack信號(hào),此時(shí)完成一次正常握手通信。

    ?

    七、關(guān)于變量的定義

    在編寫testbench時(shí),關(guān)于變量的定義一個(gè)常犯的錯(cuò)誤就是將一個(gè)定義好的全局變量應(yīng)用到了兩個(gè)不同的always塊中(如EX1C),由于兩個(gè)always獨(dú)立并行工作,會(huì)產(chǎn)生意想不到的后果。

    解決方法是可以在begin...end之間定義always的塊名,這樣兩個(gè)always塊中的變量i就互不相關(guān)了。

    八、HDL的三個(gè)最基本思想

    連通性(Connectivity)、時(shí)間性(Time)和并行性(Concurrency)。

    ?

    九、Testbench書寫技巧

  • 封裝有用的子程序;
  • 結(jié)構(gòu)化Testbench;
  • 防止對(duì)同一個(gè)寄存器同時(shí)進(jìn)行讀寫操作;(使用非阻塞語句可以解決)
  • 防止同時(shí)調(diào)用task。(可以在task中引入檢錯(cuò)機(jī)制,檢查task當(dāng)前是否被調(diào)用)
  • 十、建立時(shí)間、保持時(shí)間

    建立時(shí)間滿足:

    ?即?

    保持時(shí)間滿足:

    時(shí)鐘滿足:??由此可以計(jì)算FPGA的最大頻率,系統(tǒng)時(shí)序優(yōu)化主要是對(duì)傳輸路徑延時(shí)??做文章。

    ?

    十一、邏輯仲裁設(shè)計(jì)要點(diǎn)

  • 復(fù)位狀態(tài);
  • 切換時(shí)序;當(dāng)前狀態(tài)執(zhí)行完可以通過仲裁直接進(jìn)入另一狀態(tài)或者維持現(xiàn)有狀態(tài),不必一定要返回中間狀態(tài)。
  • 輪流響應(yīng);防止某一狀態(tài)長(zhǎng)期霸占總線。
  • 超時(shí)退出。
  • 十二、FPGA+CPU

    • 潛在優(yōu)勢(shì):
    • 更易于滿足大多數(shù)系統(tǒng)的功能性要求;
    • 潛在的改善了系統(tǒng)的性能;
    • 在某些應(yīng)用中的靈活性和可升級(jí)性大大提高;
    • 處理器連接到外設(shè)的接口能夠得到優(yōu)化;
    • 軟硬件互聯(lián)的接口性能獲得極大的提升;
    • 有利于設(shè)計(jì)的重用和新設(shè)計(jì)的快速成型;
    • 簡(jiǎn)單化芯片甚至整板的PCB布局布線。

    ?

    其實(shí)這本書我還有很多地方?jīng)]看明白,應(yīng)該需要多看幾遍。

    參考文獻(xiàn):

    《深入淺出玩轉(zhuǎn)FPGA》第三版,吳厚航編著

    總結(jié)

    以上是生活随笔為你收集整理的《深入浅出玩转FPGA》笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。