日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《深入浅出玩转FPGA》笔记

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

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

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

一、關(guān)于時鐘的設(shè)計要點:

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

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

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

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

(3)盡量對輸入的異步信號用時鐘進行鎖存。

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

(4)避免使用異步信號進行復(fù)位或置位控制。

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

?

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

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

很多時候時序不達要求是因為有幾條關(guān)鍵路徑內(nèi)部邏輯門延時太長,可以通過修改代碼減少某些路徑的層級,但通常會導(dǎo)致其他路徑多出一個或幾個邏輯門,“面積換速度”。

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

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

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

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

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

?

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

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

綜合后的電路:

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

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

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

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

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

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

?

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

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

    ?

    六、專用握手信號

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

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

    ?

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

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

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

    八、HDL的三個最基本思想

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

    ?

    九、Testbench書寫技巧

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

    建立時間滿足:

    ?即?

    保持時間滿足:

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

    ?

    十一、邏輯仲裁設(shè)計要點

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

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

    ?

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

    參考文獻:

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

    總結(jié)

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

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