本文摘自《fpga之道》,一看來學習下作者的看法。
拋開應用背景、科研領域不談,單從fpga設計本身的一些特性出發,就可以將它劃分成若干個基本類別。在動手用hdl**實現fpga設計之前,最好先分析一下待實現的fpga設計具有哪乙個或者哪幾個基本類別的特徵,從而採用更加適合的程式設計思路來編寫hdl**。
按功能來看,fpga設計可以分為控制類、通訊鏈路類和資料處理類。
從按功能劃分的各個類別的說明來看,只有具有資料處理類別特徵的fpga設計才可能成為整個硬體系統中的主角。因為如果以人的神經系統作為比喻的話:通訊鏈路類就好比分布在身體各個地方的神經元,只完成資訊的傳遞功能;控制類就好比脊柱,不光完成關鍵資訊傳遞,還可以適當的發揮自己的主觀能動性(尤其是在大腦睡眠的時候);而資料處理類就好比大腦,完成了幾乎所有的對資訊的處理工作。因此,在了解了fpga設計功能的側重點之後,也可以對其在硬體系統中的角色定位有乙個基本認識,從而可以在進行硬體系統級設計的時候就能評估好fpga設計的任務量及重要性,從而分配好投入到fpga設計中的人力、物力和財力。
按面向來看,fpga設計可以分為介面處理類與內部邏輯類。
因此,一般來說,fpga設計均同時具備這兩種基本類別的特徵,而這兩種基本類別也是相互依存的。介面處理類與內部邏輯類之間的關係就好比人的五官和大腦一樣,五官負責接收外部資訊(光、聲音、熱量等)和向外界傳送資訊(聲音、書寫、手勢等),而大腦則負責處理五官接收到的資訊和產生需要經由五官輸出的資訊。如果突然間眼瞎了、耳聾了、嘴啞了、身癱了,那麼即使再聰明的大腦也無法發揮作用;同樣,如果大腦不靈光,即使擁有再好的視力、聽力、嗅覺、觸感,也一樣搞不清看到的、聽到的、聞到的、摸到的到底是怎麼回事,更不知道該如何反饋自己得到的資訊。因此,編寫hdl**之前,要清楚的區分好fpga設計的介面處理部分與內部邏輯部分,然後在保證「看的準確」、「說的準確」的同時,保證「分析的準確」,從而保證fpga設計的準確。
根據fpga設計的具體情況,一般按面向分後的側重點也不同。一般來說,簡單的fpga設計兩個類別的hdl編寫都比較簡單,就好比閱讀一樣,眼睛獲取了文字影象,大腦識別後直接通過嘴巴發聲讀出;有些設計則比較偏重於內部邏輯類,就好比做數學題一樣,眼睛看到的算式影象,大腦識別後,還需要再根據相應的運算符號的意義進行運算,然後才能呼叫嘴巴發聲說出結果;而有些設計則比較偏重於介面處理類,就好比玩連連看遊戲,靠的就是眼疾手快;另外,還有一些設計兩種特徵都很偏重,就好比打籃球,拼速度、拼身體、更拼籃球智商。因此,在了解了fpga設計面向的側重點之後,就可以盡早的把握好fpga設計的難點所在,能夠更加充分評估fpga設計的複雜度、可行性,以及合理分配投入在每一方面的精力等。
如果僅僅按速度分,那麼fpga設計可分為純組合邏輯設計、低速設計、中速設計、高速設計四類。速度的概念,其實是和fpga設計中時鐘訊號的頻率息息相關的。如果fpga設計中,根本沒有時鐘訊號的概念(如果鎖存的控制訊號也看作時鐘的一種的話),那麼表明它也不會使用到任何的儲存單元,因此,這種設計就是乙個純組合邏輯設計,對於這種設計來說,如果純看fpga內部,沒有什麼速度的概念,但是其內部的門延遲和線延遲等,可能會影響到整個硬體系統的速度和效能。而通常來說,fpga設計中一般都是有時鐘訊號的,而且大部分時候可能還不止乙個,此時可以根據時鐘訊號頻率的高低,再細分為低速、中速或高速設計。實現同樣的邏輯功能,如果對時鐘速度的要求越高,那麼開發起來難度就越大,因此可以根據fpga設計中時鐘速度的需求,來評估開發難度、採取相應的開發策略。
如果僅僅按規模分,那麼fpga設計可以分為小規模設計、中規模設計和大規模設計三類。規模的大小其實也就是實現乙個fpga設計所需要使用到的資源的多少。因此規模越大,能夠實現的邏輯功能也就越多、越複雜,但是隨之而來,編譯器的負擔也越大,尤其是fpga設計的資源佔用率也很大時,布局佈線的成功率會明顯降低。因此也可以根據fpga設計的規模來評估開發難度以及採取相應的開發策略。
如果綜合時鐘速度要求與資源規模預期,又可將考慮fpga設計分為四個類別:低速小規模設計、低速大規模設計、高速小規模設計、高速大規模設計。低速小規模設計最簡單;低速大規模設計難點主要在邏輯功能上;高速小規模設計難點主要在邏輯效能上;而高速大規模設計的難點則同時在邏輯功能與效能上,並且一般都需要用到時空變換的思想來達到系統需求。因此,在寫hdl**前先對自己的fpga設計做乙個速度與規模的評估,從而估計開發難度以及採取相應的開發策略。
FPGA之道(13)FPGA晶元的應用模式
所謂的fpga的應用模式就是配置方式的組合,在實際的專案開發中,我們可以在除錯階段通過jtag配置模式進行配置,在成熟階段,可以通過主動配置模式進行配置,而主動配置模式就是所謂的將bit流檔案固化進flash的過程。本文摘自 fpga之道 介紹了幾種常見的應用模式供不同場景使用。在實際的fpga專案...
FPGA研發之道(25) 管腳
管腳是fpga重要的資源之一,fpga的管腳分別包括,電源管腳,普通i o,配置管腳,時鐘專用輸入管腳gclk 等。1 電源管腳 通常來說 fpga 內部的電壓包括核心電壓和i o電壓。1.核心電壓 即fpga內部邏輯的供電。通常會較i o電壓較低,隨著fpga的工藝的進度,fpga的核心電壓逐漸下...
FPGA設計 180104 FPGA器件選型相關
fpga器件選擇中,有乙個考慮因素是封裝大小,封裝大小也限制了可用管腳個數以及可用serdes的數目,舉例如下 以3cg為例,不同的封裝型別,對應器件的hd埠 hp埠以及serders gth,gty 個數是不一樣的,另外可以看到3cg目前是沒有serders埠的。bank一般分為hp,hr,hd,...