FPGA 對FPGA的理解

2021-06-28 17:03:31 字數 1107 閱讀 3620

該文章主要描述對fpga的理解及其在嵌入式開發中fpga的配合問題。

1、fpga的設計流程

fpga(field programmable gate array)是一種可程式設計的邏輯電路,可以通過硬體描述語言verilog或者vhdl實現邏輯電路的設計。其設計流程如下:

其中,功能**又可以稱為前**,主要驗證所建立的邏輯功能是否正確。

後**為布局佈線後的**,對應於閘電路級別的**,與前**不同,這裡可以看到具體電路的布局佈線對時序上的影響。

參考:《fpgadesign flow》altera.com

《功能**與時序**,及

modelsim

的使用》

2、fpga與嵌入式開發

之前在實習時是用cpu控制fpga內部邏輯,達到對介面時序進行控制,對應的原理框圖如下:

上圖中,cpu與flash,ddr及cpld採用localbus匯流排方式進行連線。

在這裡,cpld在業務上除了對mcu與fpga之間的資料進行透傳之外,還起到ps載入的作用。很多人可能認為這樣的設計可能會比較多餘,因為cpu可以直接對fpga進行ps載入,只要模擬載入的介面時序即可,同時,這樣也可以達到對fpga的直接操作。但是,這樣的設計是為了能夠提高ps載入的速度。

對於cpu來說,介面時序的模擬有一定的瓶頸,速度要具體參考對應gpio的轉換速度,一般不是專門設計用來載入的gpio口,其高低電平轉換速度有限,通常為khz,這就導致了fpga的載入速度取決於gpio口的速度。但對於cpld載入fpga這樣的方式來說,cpu只需要將資料通過localbus傳送給cpld,然後載入的過程由cpld進行,對於localbus這樣的匯流排,參考時鐘通常在66mhz左右,所以cpu傳送速度有所保障,大大提公升ps載入的速度。更多的ps載入流程,可參考aletra的手冊。

此外,在業務中,cpu與fpga的控制主要通過cpu->cpld->fpga進行,cpld將資料從cpu端透傳至fpga端,從而cpu能夠直接操作fpga內部定義好的暫存器,實現對應操作。

參考:《using cpld improve fpga loading speed》李春雨,張麗霞

fpga 乙個牛人對FPGA的理解 太可怕了!

看到的乙個牛人對fpga的理解,看來fpga太厲害了!fpga多數情況下相比asic而言,晶元成本大概是100倍的關係,最大的浪費在lut這裡,做出乙個lut 4需要16位儲存單元,再加乙個4 16解碼器,以及其它的連線資源,做成乙個lut 4,至少需要16 6 8個電晶體。那麼做乙個4輸入邏輯,設...

FPGA 狀態機,FPGA的靈魂

有關狀態機的文章,事實上已經寫過很多了,可是即使如此,真的懂了嗎?真的能熟練應用嗎?未必吧。這篇博文 是 fpga之道 認真下看去收貨頗豐!借這個主題來梳理下狀態機 狀態機是fpga設計中一種非常重要 非常根基的設計思想,堪稱fpga的靈魂,貫穿fpga設計的始終。簡單地說,狀態機就是一副描繪著狀態...

FPGA 初探FPGA 入門過程的分享

南信大電子工程師協會慕課計畫 fpga入門學習 2 從入門到入墳的經驗1 南信大電子工程師協會慕課計畫 fpga入門學習 3 從入門到入墳的經驗2 理論 打好基礎 實際工程 軟體使用 上板實驗 直觀的效果 系統工程 組合功能 展現應用效果 複雜運算 數字訊號處理 影象處理 神經網路 大型工程 科研專...