目錄:1、FPGA中LUT、LATCH、FF的概念
2、LUT、LATCH、FF的相互關系
3、verilog語句與LUT、LATCH、FF的對應關系
4、FPGA的一些參數:LE、ALM、eSRAM、M20K、MLAB、DSP,PEAK
5、RAM、ROM、FIFO
5.1 FIFO、RAM、ROM概念
5.2 FIFO、RAM、ROM的不同
5.3 應用場景
1、FPGA中LUT、LATCH、FF的概念
LUT(look up table):查找表
本質是一個RAM,將數據事先存儲在其中。當輸入一個信號后,根據信號所指向的地址進行查表,找出地址對應的內容進行輸出。
LATCH:一種鎖存器。電平觸發,非同步控制。在使能信號有效時,LATCH相當於通路(en=1,則 output =input);使能信號無效時,LATCH保存不變。(en=0,則output(當前)=output(之前))
Latch優點:
1、面積比ff小:門電路時構成組合邏輯電路的基礎,鎖存器和寄存器是時序邏輯電路的基礎。構成順序:晶體管==>門電路==>鎖存器==>觸發器。
2、latch鎖存器速度比ff觸發器速度快。
缺點:
1、電平觸發,非同步設計,受到布線延遲影響大,容易導致輸出產生毛刺
FF(Flip Flop):觸發器,時鍾沿觸發,可以存儲1bit的數據,是reg的基本存儲單位。
結構圖如下:
DFF:D類觸發器,是邊沿觸發,屬於時序邏輯。(reg就是由DFF組成,一個8位寄存器,用了8個同步的D觸發器)
FF的優點:
1、邊沿觸發,同步設計,不容易受到毛刺的影響。
2、時序分析簡單。
缺點:
1、面積比latch大(鎖存器==>寄存器)
2、LUT、LATCH、FF的相互關系
LUT與LATCH共同點:屬於組合邏輯(不受時鍾沿影響)
不同點:LUT是FPGA最小單元的組成結構,LATCH不是最小組成單元
LATCH和FF不同點:LATCH鎖存器可以將輸出進行保持不變;觸發器FF是指通過時鍾觸發沿觸發的存儲單元;由敏感信號(電平,邊沿)控制的鎖存器就是觸發器。
3、verilog語句與LUT、LATCH、FF的對應關系
1、always@(*) 或者 assign 時,綜合出的為LUT(不受時鍾控制)
2、always@(*)時,若if不完整(無else)或者case不完整(無default)時,會綜合出latch,導致不穩定。
3、always@(posedge clk)時,綜合出的為reg,即使if或case不完整時,也不會綜合出latch
4、FPGA的一些參數:LE、ALM、eSRAM、M20K
4.1邏輯單元LE
用於完成用戶邏輯的最小單元,在FPGA內部。(intel叫logic element,xilinx叫logic cell)。一個邏輯單元由以下部件組成:一個四輸入的查找表(LookUpTable,LUT),一個可編程的寄存器,一條進位鏈,一條寄存器級連鏈。
4.2自適應邏輯模塊(ALM)+ALM寄存器
解決LE級聯和反饋才能產生具有較多輸入函數的指標
4.3可編程的時鍾樹
4.4eSRAM存儲器模塊和eSRAM存儲器容量
存儲程序的位置。SRAM(Static Random-Access Memory)靜態隨機存取存儲器。靜態:只要存儲器保持通電,存儲的數據便可以保持。
4.5 M20K存儲器模塊+M20K存儲器容量
大小為20kbit的memory塊
4.6MLAB:
多功能的LAB,即可以做LAB,也可以在需要時作為memory使用。
4.7精度可調DSP+Peak定點性能+Peak浮點性能。
三個模塊用於描述FPGA對精度和浮點運算性能的指標。
附:DSP模塊有標注精度定點、高精度定點、單精度浮點,三種模式。設計人員利用這三種模式,可以實現從定點到符合 IEEE 754 的雙精度浮點運算的各種不同算法。硬浮點處理支持設計人員以相同的定點性能和效率在浮點中實現其算法,且不會對功耗、面積或密度產生任何影響,也不會損失定點特性或功能。
通常來講浮點數比定點數具有更高的動態表達范圍和精度。
(浮點數用指數形式存儲,類似於科學計數法a×10^n。
定點數則是與平常的表示數的方法相同)
5、RAM、ROM、FIFO
5.1 FIFO、RAM、ROM概念
FIFO(First Input First Output):先入先出隊列。其中的數據先進先出,先進的數據先讀出來。
RAM(Random access memory):隨機存取存儲器,也叫主存。是與CPU直接交換數據的內部存儲器。可隨時讀寫,速度很快,常作為操作系統或其他正在運行中的程序的臨時數據存儲介質。讀出的數據順序和寫入的數據順序可以不一樣,可以向RAM中任意位置寫入數據,或者讀取任意位置的數據。
ROM(Read-only memory):只讀存儲器,只能讀出不能寫入信息。信息一旦寫入,斷電后信息也不會丟失,因此又稱固定存儲器。ROM所存的數據通常是裝機前寫入,裝機過程中只能讀出,不可像RAM一樣快速改寫存儲內容。ROM存儲的數據穩定,斷電后數據也不會改變,常用於存儲各種固定程序和數據。
5.2 RAM、ROM和FIFO的不同
RAM與ROM最大的不同,RAM有數據的易失性,即一斷電數據就丟失,用於暫存程序、數據和中間結果。
FIFO與RAM信號的不同
FIFO的信號中沒有讀地址與寫地址,因此只能按順序讀寫數據。而RAM的信號中含有讀寫地址,可以讀寫任意地址。
5.3應用場景
FIFO常用於數據傳輸通道,用於緩存數據,防止數據丟失。不同速率時鍾模塊間的數據傳輸就需要用到異步FIFO
RAM常用於存儲指令或是中間的數據,如指令cache和數據cache就是由RAM實現。