FPGA工作原理

2021-08-07 04:46:38 字數 2145 閱讀 1186

一.查詢表(look-up-table)的原理與結構

採用這種結構的pld晶元我們也可以稱之為fpga:如altera的acex,apex系列,xilinx的spartan,virtex系列等。

查詢表(look-up-table)簡稱為lut,lut本質上就是乙個ram。 目前fpga中多使用4輸入的lut,所以每乙個lut可以看成乙個有4位位址線的16x1的ram。 當使用者通過原理圖或hdl語言描述了乙個邏輯電路以後,pld/fpga開發軟體會自動計算邏輯電路的所有可能的結果,並把結果事先寫入ram,這樣,每輸入乙個訊號進行邏輯運算就等於輸入乙個位址進行查表,找出位址對應的內容,然後輸出即可。

下面是乙個4輸入與門的例子,

二.基於查詢表(lut)的fpga的結構

我們看一看xilinx spartan-ii的內部結構,如下圖:

spartan-ii主要包括clbs,i/o塊,ram塊和可程式設計連線(未表示出)。在spartan-ii中,乙個clb包括2個slices,每個slices包括兩個lut,兩個觸發器和相關邏輯。 slices可以看成是spartanii實現邏輯的最基本結構 (xilinx其他系列,如spartanxl,virtex的結構與此稍有不同,具體請參閱資料手冊)

altera的flex/acex等晶元的結構如下圖:

altera flex/acex 晶元的內部結構

邏輯單元(le)內部結構

flex/acex的結構主要包括lab,i/o塊,ram塊(未表示出)和可程式設計行/列連線。在flex/acex中,乙個lab包括8個邏輯單元(le),每個le包括乙個lut,乙個觸發器和相關的相關邏輯。le是flex/acex晶元實現邏輯的最基本結構(altera其他系列,如apex的結構與此基本相同,具體請參閱資料手冊)

二.查詢表結構的fpga邏輯實現原理

我們還是以這個電路的為例:

a,b,c,d由fpga晶元的管腳輸入後進入可程式設計連線,然後作為位址線連到到lut,lut中已經事先寫入了所有可能的邏輯結果,通過位址查詢到相應的資料然後輸出,這樣組合邏輯就實現了。 該電路中d觸發器是直接利用lut後面d觸發器來實現。時鐘訊號clk由i/o腳輸入後進入晶元內部的時鐘專用通道,直接連線到觸發器的時鐘端。

觸發器的輸出與i/o腳相連,把結果輸出到晶元管腳。這樣pld就完成了圖3所示電路的功能。(以上這些步驟都是由軟體自動完成的,不需要人為干預)

這個電路是乙個很簡單的例子,只需要乙個lut加上乙個觸發器就可以完成。對於乙個lut無法完成的的電路,就需要通過進製邏輯將多個單元相連,這樣fpga就可以實現複雜的邏輯。

由於lut主要適合sram工藝生產,所以目前大部分fpga都是基於sram工藝的,而sram工藝的晶元在掉電後資訊就會丟失,一定需要外加一片專用配置晶元,在上電的時候,由這個專用配置晶元把資料載入到fpga中,然後fpga就可以正常工作,由於配置時間很短,不會影響系統正常工作。 也有少數fpga採用反熔絲或flash工藝,對這種fpga,就不需要外加專用的配置晶元。

三.其他型別的fpga和pld

隨著技術的發展,在2023年以後,一些廠家推出了一些新的pld和fpga,這些產品模糊了pld和fpga的區別。例如altera最新的maxii系列pld,這是一種基於fpga(lut)結構,整合配置晶元的pld,在本質上它就是一種在內部整合了配置晶元的fpga,但由於配置時間極短,上電就可以工作,所以對使用者來說,感覺不到配置過程,可以傳統的pld一樣使用,加上容量和傳統pld類似,所以altera把它歸作pld。 還有像lattice的xp系列fpga,也是使用了同樣的原理,將外部配置晶元整合到內部,在使用方法上和pld類似,但是因為容量大,效能和傳統fpga相同,也是lut架構,所以lattice仍把它歸為fpga。

四.選擇pld還是fpga?

根據上一篇pld的結構和原理可以知道,pld分解組合邏輯的功能很強,乙個巨集單元就可以分解十幾個甚至20-30多個組合邏輯輸入。而fpga的乙個lut只能處理4輸入的組合邏輯,因此,pld適合用於設計解碼等複雜組合邏輯。 但fpga的製造工藝確定了fpga晶元中包含的lut和觸發器的數量非常多,往往都是幾千上萬,pld一般只能做到512個邏輯單元,而且如果用晶元**除以邏輯單元數量,fpga的平均邏輯單元成本大大低於pld。

所以如果設計中使用到大量觸發器,例如設計乙個複雜的時序邏輯,那麼使用fpga就是乙個很好選擇。 同時pld擁有上電即可工作的特性,而大部分fpga需要乙個載入過程,所以,如果系統要可程式設計邏輯器件上電就要工作,那麼就應該選擇pld。

FPGA工作原理

作者 關鍵字 採用這種結構的pld晶元我們也可以稱之為fpga 如altera的acex,apex系列,xilinx的spartan,virtex系列等。查詢表 look up table 簡稱為lut,lut本質上就是乙個ram。目前fpga中多使用4輸入的lut,所以每乙個lut可以看成乙個有4...

FPGA學習經典

fpga設計流程指南 本部門所承擔的fpga設計任務主要是兩方面的作用 系統的原型實現和asic的原型驗證。編寫本流程的目的是 在於規範整個設計流程,實現開發的合理性 一致性 高效性。形成風格良好和完整的文件。實現在fpga不同廠家之間以及從fpga到asic的順利移植。便於新員工快速掌握本部門fp...

FPGA經驗指導

學習verilog必走的3個階段 入門篇 秋幹勿燥,冬去春來 01.建立專案 02.verilog a nand nor and or b assignment c always 04.選設device 05.settings a 加減檔案 b 設定top module檔案 c 設定classic ...