畢業後,從乙個嵌入式硬體狗轉做fpga工程師,從中兜兜轉轉繞了不少彎路,為了給後人避坑,所以今天開始寫有關fpga從入門到精通的教程吧,這也算是給我國積體電路的發展做出微薄的貢獻吧。
本門課程主要是針對有一定數電基礎的人看的。所以不會不像其他教程那樣,上來就跟你講verilog,跑馬燈,按鍵,計數器等等。因為這麼學,最後只會越來越讓自己感覺所做的事情和個程式猿無差,與我的初心不符。所以我會更加偏向於從硬體設計的角度向讀者加以講解fpga,這樣才會在fpga這條道路上越走越遠,越吃越精。
本門課程主要分為三部分:
1.從fpga的器件內部結構出發(這裡以xilinx為主,其實無論是xilinx ,altera,lattice,國產 。它們內部架構以及開發軟體,其實都大同小異,一通則百通),講解硬體描述語言是如何與內部單元和連線一一對應的。一般而言,fpga內部(圖1 xilinx a7系列的 feature summary)主要包含以下幾大件。從實際出發,器件有啥我講啥
(1)不講logic cells 因為logic cells是由 slices組成的 ,slices 數 * 6.4 =logic cells。
(2)clb(主要包括slices ,dram)
(3)dsp48e1
(4)bram
(5)cmts(時鐘管理單元,包括mmcm和pll)
(6)bank 與 使用者io ,專用io的關係
(7)xadc
(8)gtp(高速序列收發器)
2.講解fpga常用的ip以及高速介面的應用,以及介紹在官方ip無法滿足設計要求的前提下,如何根據官方ip的架構設計屬於自己的ip。舉個栗子:官方的影象感測器相關的mipi example的ip是最高只支援4通道的,然而實際應用中有可能用到8通道。我們不可能從零開始設計(這樣做會很耗時間,並且做很多枯燥無味的無用功),但在已有的基礎加以改進是乙個很不錯的選擇。
3.講解fpga相關的約束,這裡會涉及到你們經常遇到的時序約束,以及布局約束等等。說到時序約束我不得不吐槽,一堆博文都是通過幾張圖在講這個建立時間,保持時間是什麼,然後告訴讀者這個兩個東東應該怎麼算。實際上,從工程上來說,這個真的沒啥屁用。因為計算的結果eda軟體早就幫你算好了,你需要做的是根據已有的計算結果,在時序餘量不足的情況下對路徑進行優化,在時序餘量過剩的時候考慮相應的資源、功耗優化。
xilinx ds180 (7 series fpgas data sheet: overview)
Hyperf從入門到精通(1)
編譯安裝 建立軟鏈 對php fpm執行使用者進行設定 建立軟鏈 配置環境變數,加入全域性命令 啟動php fpm 服務 檢視是否啟動 殺死php fpm 安裝swoole 安裝composer 安裝redis 安裝hyperf 壓力測試 hyperf從入門到精通第一講,介紹hyperf框架的特點,...
黑客攻防 從入門到精通(1)
略 大多數應用程式都聲稱其安全可靠,因為它們使用ssl secure socket layer,ssl安全套接層 ssl使用128位安全套接層技術設計,是為網路通訊提供安全和資料完整性的一種安全協議。ssl在傳輸層對網路連線進行加密,可以防止未授權使用者檢視您的人任何資訊。它提供以下服務 1.認證使...
EFCore 從入門到精通 1(總覽
支援多種資料庫 mssql mysql,sqlite,inmemory 支援linq查詢 支援反向工程,可以將資料庫的架構和efcore模型進行同步 支援遷移,efcore模型的更改可以通過遷移到同步到資料庫架構中 支援日誌記錄 事件和診斷 支援使用原生的sql語句進行資料操作,類似半自動orm e...