現場可編程邏輯器件FPGA的基本結構
發布時間:2008/12/8 0:00:00 訪問次數:617
1.查找表的結構奸原理
采用查找表(look-up-table)結構的pld芯片稱為fpga,查找表簡稱為lut,lut本質上就是一個ram。 目前fpga中多使用4輸人的lut,所以每一個lut可以看成一個有4位地址線的16×1的ram。當用戶通過原理圖或hdl語言描述一個邏輯電路后,fpca開發軟件會自動計算邏輯電 路的所有可能的結果,并把結果事先寫人ram,這樣,每輸人一個信號進行邏輯運算就等于輸人一個地址 進行查表,找出地址對應的內容,然后輸出即可。表1所示為一個4輸人與門的例子。
表1 lut實現4輸入與門的例子
2.基于查找表的fpga結構
下面以xilinx的spartan-3芯片為例介紹fpga的內部結構,如圖1所示。
圖1 spartan-3 fpga芯片內部結構
spartan-3主要包括可配置邏輯模塊(clb)、i/0模塊、塊ram、乘法器模塊和數字時鐘管理模塊(dcm )。在spartan-3中,clb是主要的邏輯資源,每個clb包含4個slice,并分為2組,如圖2所示。左側一組 支持邏輯和存儲功能,稱為slicem,右側一組只支持邏輯功能,稱為slicel。slicel減少了clb的大小并 降低了器件的成本。slicem和slicel具有如下相同組件來提供邏輯、運算和rom功能:
·2個4輸人查找表,f和g;
·2個存儲單元;
圖2 clb內部結構
·2個多功能乘法器,f5mux和fgmux(或ftmux,fsmux);
·運算邏輯。
因此,slice可以看成spartan-3實現邏輯的最基本結構。slice結構如圖3所示。
圖3 slice結構
3,查找表結構的fpga邏輯實現原理
以圖4所示電路為例,具體說明fpga是如何利用以上結構實現邏輯的。a,b,c,d由fpca芯片的引腳輸 人后進人可編程連線,然后作為地址線連到lut,lut中已經事先寫人了所有可能的邏輯結果,通過地址查 找到相應的數據后輸出,這樣組合邏輯就實現了。該電路中d觸發器是直接利用lut后面d觸發器來實現的 。時鐘信號clk由i/o腳輸入后進入芯片內部的時鐘專用通道,直接連接到觸發器的時鐘端。觸發器的輸出 與i/0腳相連,把結果輸出到芯片引腳。這樣fpga就完成了圖4所示電路的功能。這個電路是一個很簡單的 例子,只需要一個lut加上一個觸發器就可以完成。對于一個lut無法完成的電路,就需要通過進位邏輯將 多個單元相連,這樣fpga就可以實現復雜的邏輯。
由于lut主要適合sram工藝生產,所以目前大部分fpca都是基于sram工藝的,而sram工藝的芯片在掉電 后信息就會丟失,所以需要外加一片專用配置芯片,在上電時,由這個專用配置芯片把數據加載到fpga中 ,然后fpga就可以正常工作,由于配置時間很短,不會影響系統正常工作。也有少數fpga采用反熔絲或 flashェ藝,對這種fpga,就不需要外加專用的配置芯片。
圖4 fpga器件的命名規則
4.cpld與fpga的選擇
根據cpld的結構和原理可知,cpld分解組合邏輯的功能很強,一個宏單元就可以分解十幾個甚至20~30 多個組合邏輯輸入。而fpga的一個lut只能處理4輸人的組合邏輯,因此,cpld適合用于設計譯碼等復雜組 合邏輯。但fpga的制造工藝確定了fpga芯片中包含的lut和觸發器的數量菲常多,往往都是成千上萬, cpld一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數量,fpga的平均邏輯單元成本大 大低于cpld。所以如果設計中使用到大量觸發器,例如設計一個復雜的時序邏輯,那么使用fpga就是一個 很好的選擇。cpld擁有上電即可工作的特性,而大部分fpga需要一個加載過程,所以,如果系統要可編程 邏輯器件上電就工作,那么就應該選擇cpld。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
1.查找表的結構奸原理
采用查找表(look-up-table)結構的pld芯片稱為fpga,查找表簡稱為lut,lut本質上就是一個ram。 目前fpga中多使用4輸人的lut,所以每一個lut可以看成一個有4位地址線的16×1的ram。當用戶通過原理圖或hdl語言描述一個邏輯電路后,fpca開發軟件會自動計算邏輯電 路的所有可能的結果,并把結果事先寫人ram,這樣,每輸人一個信號進行邏輯運算就等于輸人一個地址 進行查表,找出地址對應的內容,然后輸出即可。表1所示為一個4輸人與門的例子。
表1 lut實現4輸入與門的例子
2.基于查找表的fpga結構
下面以xilinx的spartan-3芯片為例介紹fpga的內部結構,如圖1所示。
圖1 spartan-3 fpga芯片內部結構
spartan-3主要包括可配置邏輯模塊(clb)、i/0模塊、塊ram、乘法器模塊和數字時鐘管理模塊(dcm )。在spartan-3中,clb是主要的邏輯資源,每個clb包含4個slice,并分為2組,如圖2所示。左側一組 支持邏輯和存儲功能,稱為slicem,右側一組只支持邏輯功能,稱為slicel。slicel減少了clb的大小并 降低了器件的成本。slicem和slicel具有如下相同組件來提供邏輯、運算和rom功能:
·2個4輸人查找表,f和g;
·2個存儲單元;
圖2 clb內部結構
·2個多功能乘法器,f5mux和fgmux(或ftmux,fsmux);
·運算邏輯。
因此,slice可以看成spartan-3實現邏輯的最基本結構。slice結構如圖3所示。
圖3 slice結構
3,查找表結構的fpga邏輯實現原理
以圖4所示電路為例,具體說明fpga是如何利用以上結構實現邏輯的。a,b,c,d由fpca芯片的引腳輸 人后進人可編程連線,然后作為地址線連到lut,lut中已經事先寫人了所有可能的邏輯結果,通過地址查 找到相應的數據后輸出,這樣組合邏輯就實現了。該電路中d觸發器是直接利用lut后面d觸發器來實現的 。時鐘信號clk由i/o腳輸入后進入芯片內部的時鐘專用通道,直接連接到觸發器的時鐘端。觸發器的輸出 與i/0腳相連,把結果輸出到芯片引腳。這樣fpga就完成了圖4所示電路的功能。這個電路是一個很簡單的 例子,只需要一個lut加上一個觸發器就可以完成。對于一個lut無法完成的電路,就需要通過進位邏輯將 多個單元相連,這樣fpga就可以實現復雜的邏輯。
由于lut主要適合sram工藝生產,所以目前大部分fpca都是基于sram工藝的,而sram工藝的芯片在掉電 后信息就會丟失,所以需要外加一片專用配置芯片,在上電時,由這個專用配置芯片把數據加載到fpga中 ,然后fpga就可以正常工作,由于配置時間很短,不會影響系統正常工作。也有少數fpga采用反熔絲或 flashェ藝,對這種fpga,就不需要外加專用的配置芯片。
圖4 fpga器件的命名規則
4.cpld與fpga的選擇
根據cpld的結構和原理可知,cpld分解組合邏輯的功能很強,一個宏單元就可以分解十幾個甚至20~30 多個組合邏輯輸入。而fpga的一個lut只能處理4輸人的組合邏輯,因此,cpld適合用于設計譯碼等復雜組 合邏輯。但fpga的制造工藝確定了fpga芯片中包含的lut和觸發器的數量菲常多,往往都是成千上萬, cpld一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數量,fpga的平均邏輯單元成本大 大低于cpld。所以如果設計中使用到大量觸發器,例如設計一個復雜的時序邏輯,那么使用fpga就是一個 很好的選擇。cpld擁有上電即可工作的特性,而大部分fpga需要一個加載過程,所以,如果系統要可編程 邏輯器件上電就工作,那么就應該選擇cpld。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)