**記錄學習,記錄成長
介紹fpga的基本結構並說明fpga如何實現可程式設計功能。
為什麼要了解fpga基本結構呢?
了解這些後,在進行fpga設計時,可以大概知道電路在fpga上是如何實現的。在進行時序約束或者提高時鐘頻率時,知其然更知其所以然。
目錄
1.fpga介紹
2.fpga組成三要素
2.1 clbs可程式設計邏輯塊
2.2 可程式設計輸入輸出塊【i/obs】
2.3 片內互聯線
3.fpga其他可選資源
fpga:field programmable gate array 【現場可程式設計門陣列】
現場可程式設計:指的是程式設計可直接在現場進行,意味著fpga的即時可得性。
門陣列:fpga可程式設計功能主要是對邏輯門操作實現的,這些邏輯門在fpga器件中進行排列組成門陣列。
按程式設計方式和邏輯功能可分下面三種型別:
①sram-查詢表型別(intel xilinx)
②反熔絲的多路開關型別fpga器件(actel)
③基於flash的fpga(lattice)
fpga基本組成三要素:
①可程式設計邏輯塊(clbs,configurable logic blocks) ②片內互聯線(programmable interconnect)③ 輸入輸出塊(iobs,i/o blocks)
fpga可程式設計功能的實現主要由上面三種結構實現的。
可程式設計邏輯塊(clb),也稱作邏輯單元(le),是可程式設計邏輯實現的主體。
主要有下面三部分組成:①查詢表(lut,look up table)②d觸發器(dff) ③進製鏈(carry chain)。
lut用來實現組合邏輯功能,d觸發器寄存資料,進製鏈用來實現加法
cyclone iv e 上的可程式設計邏輯功能塊
lut:用來實現組合邏輯功能。
lut本質上是乙個ram。根據配置將相應數值寫入ram,輸入訊號作為位址訊號。
當輸入資料超過乙個lut的介面數量時,就需要多個lut進行級聯。
dff:對資料進行寄存。
d觸發器中的資料是lut的輸出值,也就是對lut的值打了一拍。
邏輯單元可以選擇是直接輸出lut的輸出值,還是d觸發器中的值。使用d觸發器可以減少組合路徑長度,有利於時序收斂。
進製鏈:完成加法/減法邏輯,與其他clbs通訊。
i/obs是fpga內部邏輯與外部管腳之間的介面,實現與外部器件的通訊。
基本單元包括:
①輸入/輸出暫存器
②輸入/輸出延遲鏈
③輸出使能暫存器 【用來程式設計介面完成輸入或者功能】
④上拉電阻等..
可實現功能:
①i/o模組配有緩衝器和暫存器,可實現電平匹配,提高驅動能力,延時等功能。
②可實現單端i/o和差分i/o。
③i/o電平驅動防過衝解決:分壓電阻和齊納二極體。
cyclone iv e 可程式設計輸入輸出塊
將clbs和i/o口連線起來,實現特定的電路功能。
altera fpga採用行、列、區域性快速通道。
訊號的傳輸需要時間以及不同通道傳輸時間不同,通過約束將相近邏輯盡量靠近,可提高時序收斂效能。
①儲存器資源(塊ram,分布式ram)
②數字時鐘管理單元(分頻/倍頻、數字延遲、時鐘鎖定)
③算數運算單元(高速硬體乘法器,乘加器)
④高速序列i/o介面
⑤特殊功能模組(pcie、ddr等硬ip核)
⑥微處理器(cortex,powerpc)
FPGA中的時序分析(五)
時序約束例項詳解 本篇部落格結合之前的內容,然後實打實的做乙個約束例項,通過本例項讀者應該會實用timequest去分析相關的例項。本例項以vga實驗為基礎,介紹如何去做時序約束。首先vga這種情況屬於供源時鐘情況,不明白供源時鐘的可以參看之前部落格講解。首先檢視adv7123的資料手冊,檢視其時序...
FPGA 時序原理(更新)
建立時間和保持時間都是針對觸發器的特性說的。時序圖如下 建立時間 tsu set up time 是指在觸發器的時鐘訊號上公升沿到來以前,資料穩定不變的時間,如果建立時間不夠,資料將不能在這個時鐘上公升沿被穩定的打入觸發器,tsu就是指這個最小的穩定時間。保持時間 th hold time 是指在觸...
FPGA系列5 時序分析(時序模型)
該時序模型的要求為 tclk tco tlogic trouting tsetup tskew 其中,tco為發端暫存器時鐘到輸出時間 tlogic為組合邏輯延遲 trouting為兩級暫存器之間的佈線延遲 tsetup為收端暫存器建立時間 tskew為兩級暫存器的時鐘歪斜,其值等於時鐘同邊沿到達兩...