簡單講就是可以反覆程式設計的邏輯器件。
asic和assp功能固定,就好比印刷好的紙張,而fpga則是可以隨時擦寫的白紙一張。
fpga、arm、dsp都或多或少整合了一些asic的功能。
arm:廉價、功能多、功耗低,擅長控制與管理。
dsp:有專用的指令系統,能進行高速、高吞吐量的數字訊號處理。
fpga:可以實現arm和dsp所能實現以及它們所不能實現的功能,但功耗高,成本高,程式設計複雜。
verilog隨性適合初學、vhdl嚴謹,後期需掌握
altera(intel)/xilinx共佔據全球60%左右的市場份額,各廠商的fpga器件在開發流程,開發工具都換湯不換藥,使用者只要掌握一套方**,所有廠商可以通吃
(1)查詢表(lut):邏輯操作,lut可以用於實現真值表,將不同組合輸入產生特定輸出,通過位擴充套件可以實現多位的資料儲存單元。具體擴充套件可參考:ram的儲存容量,以及位址線,資料線
(2)觸發器(ff) :儲存lut結果的寄存單元,包含資料輸入、時鐘輸入、使能輸入、復位輸入,資料輸出。
(3)線(wires):用於連線不同模組的單元
(4)輸入輸出埠(io):fpga與外部互聯的引腳
用基本單元組成一些在工程中經常會用到的一些模組,方便直接使用。
(1)片上儲存器:塊ram(bram)、lut、移位暫存器
(2)鎖相環(pll):用於產生時鐘
(3)高速序列收發器:
(4)片外儲存控制器:
(5)乘累加模組(dsp48):加減器+乘法器+乘累加器
其中clb由兩個slice組成:
每個slice由4個6輸入lut和8個暫存器組成,(中間應該還有一些選擇器、與非門、或非門之類的東西),lut只提供乙個時鐘埠,乙個寫使能埠,因此,向lut-ram中寫資料是同步的,但讀資料則是非同步的,為此,只需新增額外的暫存器即可實現同步讀操作。這雖然增加了latency,但改善了時序,提公升了系統效能。:
當前主流fpga結構演變為:
深入淺出玩轉FPGA閱讀筆記(3) 開發流程
1.需求分析 根據需求,完成晶元選型 2.模組劃分 浩大工程分多模組完成,分工明確,便於後期維護 1.設計輸入 可以是 輸入或原理圖輸入,複雜應用一般用 輸入。2.綜合優化 將高層輸入 轉化為底層與門 非門 ram 觸發器等基本單元。3.行為 不涉及時序上的延時,單純驗證功能正確性,通過測試指令碼t...
深入淺出FPGA 1 Cyclone晶元內部
文章出處 引言在學fpga之前,一定弄明白一件事情,就是,fpga到底是什麼?好吧,這一節主要說一下這個問題,當然不止這乙個問題。弄明白了這個問題,下一節開始說verilog語言的問題。1.1fpga實現型別 眾所周知,fpga不同於asic的最要的特性就是,fpga是可重配置的。可重配置,就是這個...
深入淺出FPGA 1 Cyclone晶元內部
引言 在學fpga之前,一定弄明白一件事情,就是,fpga到底是什麼?好吧,這一節主要說一下這個問題,當然不止這乙個問題。弄明白了這個問題,下一節開始說verilog語言的問題。1.1fpga實現型別 眾所周知,fpga不同於asic的最要的特性就是,fpga是可重配置的。可重配置,就是這個晶元的功...