目錄
?編輯
一. 簡介
二.?現場可編程邏輯陣列
三.?可編程陣列邏輯
四.?通用陣列邏輯
五.?可擦除的可編程邏輯器件
六.?復雜的可編程邏輯器件
七.?現場可編程門陣列
一. 簡介
可編程邏輯器件(Programmable Logic Device,PLD)是一種用戶可根據自身需求來定義其邏輯功能的集成電路。
常見的可編程邏輯器件包括可編程陣列邏輯(PAL)、通用陣列邏輯(GAL)、復雜可編程邏輯器件(CPLD)和現場可編程門陣列(FPGA)等。
PLD 的基本結構通常由與陣列、或陣列和輸出邏輯等部分組成。用戶通過編程可以改變與陣列和或陣列的連接方式,從而實現不同的邏輯功能。
CPLD 是在 PAL 和 GAL 等基礎上發展起來的,它包含多個可編程邏輯模塊和可編程互連資源,具有較大的集成度和較高的速度。
FPGA 則采用了基于查找表(Look-Up Table,LUT)的結構,內部由大量的可編程邏輯單元、布線資源和 I/O 單元等構成,具有更高的靈活性和邏輯密度,適用于大規模、復雜的數字邏輯設計。
可編程邏輯器件的出現大大提高了數字電路設計的效率和靈活性,使得數字系統的設計和實現更加便捷和快速。
二.?現場可編程邏輯陣列
現場可編程邏輯陣列(Field Programmable Gate Array,FPGA)是一種高性能、高靈活性的可編程邏輯器件。
FPGA 通常由大量的可編程邏輯單元(Logic Cell)、可編程輸入輸出單元(IOB)和可編程互連資源(Interconnect)組成。
邏輯單元是 FPGA 的基本構建模塊,通常包含查找表(LUT)、觸發器等,可以實現各種邏輯功能。輸入輸出單元用于連接芯片內部邏輯與外部引腳。可編程互連資源則允許邏輯單元之間按照用戶的設計需求進行靈活的連接。
FPGA 的編程是通過硬件描述語言(如 VHDL、Verilog)或者圖形化設計工具來完成的。用戶可以根據具體的應用需求,定制芯片內部的邏輯結構和功能,實現從簡單的邏輯電路到復雜的數字系統。
FPGA 具有以下優點:
- 靈活性高:能夠快速適應設計變更,便于產品的升級和改進。
- 并行處理能力強:可以同時處理多個任務,提高系統性能。
- 開發周期短:減少了從設計到實現的時間。
FPGA 廣泛應用于通信、圖像處理、工業控制、航空航天等眾多領域,是現代數字系統設計的重要工具。
三.?可編程陣列邏輯
可編程陣列邏輯(Programmable Array Logic,PAL)是一種較早出現的可編程邏輯器件。
它由可編程的與陣列和固定的或陣列組成。用戶可以通過編程來決定與陣列的連接,從而實現所需的邏輯功能。
PAL 器件具有一定的通用性和靈活性,但由于其或陣列是固定的,在實現某些復雜邏輯功能時可能會受到一定的限制。
隨著技術的發展,出現了更多功能更強大、靈活性更高的可編程邏輯器件,如通用陣列邏輯(GAL)、復雜可編程邏輯器件(CPLD)和現場可編程門陣列(FPGA)等,PAL 逐漸被取代,但它在可編程邏輯器件的發展歷程中具有重要的開創性意義。
四.?通用陣列邏輯
通用陣列邏輯(General Array Logic,GAL)是在可編程陣列邏輯(PAL)基礎上發展而來的一種可編程邏輯器件。
GAL 采用了電可擦除可編程只讀存儲(EEPROM)工藝,具有可重復編程的特性,這與 PAL 的一次性編程不同。
它的輸出結構較 PAL 更為靈活,用戶可以通過編程選擇不同的輸出模式,如寄存器模式、組合邏輯模式等。
GAL 還具有加密功能,可以對設計進行保護,防止非法復制。
由于具有可重復編程、靈活的輸出結構和加密等優點,GAL 在一定時期內得到了較為廣泛的應用。但隨著更先進的可編程邏輯器件如復雜可編程邏輯器件(CPLD)和現場可編程門陣列(FPGA)的發展,GAL 已逐漸被取代。
加密實現:
通用陣列邏輯(GAL)的加密功能通常是通過其內部的特定結構和編程方式來實現的。
GAL 器件自身有 1 位保密位,該保密位能防止對陣列組態模式的非法復制。一旦該保密位被編程加密,對陣列單元的任何訪問即被失效,從而防止了進一步編程或檢驗出陣列信息。只有當器件被整體擦除時,該單元才能與整個陣列的單元一起被擦掉。
在加密過程中,用戶可以使用編程工具將特定的加密代碼寫入到 GAL 器件的保密位中。這樣,即使其他人獲得了該 GAL 器件,也無法讀取或復制其中的陣列組態模式,因為訪問陣列信息的操作會被保密位所限制。
然而,需要注意的是,雖然 GAL 的加密技術提供了一定程度的保護,但它并不是絕對安全的。隨著技術的不斷發展,可能會出現破解加密的方法。對于一些對安全性要求極高的應用,可能需要采用更高級的加密技術或安全措施。
此外,不同型號的 GAL 器件可能在加密實現的細節上略有差異,但總體原理是相似的。具體的加密操作和相關細節,可以參考相應 GAL 器件的技術文檔和編程手冊。
五.?可擦除的可編程邏輯器件
可擦除的可編程邏輯器件(Erasable Programmable Logic Device,EPLD)是一種集成電路形式的可編程邏輯器件。
EPLD 通常包含多個可編程邏輯模塊、可編程的互連資源以及輸入/輸出模塊。它的特點包括:
- 可多次擦除和編程:使用特定的方法,如紫外線照射或電擦除,可以將之前編程的邏輯配置清除,然后重新進行編程,以實現不同的邏輯功能。
- 較大的邏輯容量:能夠集成較多的邏輯門和觸發器,適合實現較為復雜的邏輯電路。
- 靈活的互連:內部的互連資源可以根據需要進行編程配置,實現不同模塊之間的連接和信號傳輸。
EPLD 在數字系統設計、電子產品開發等領域得到了廣泛應用,使得設計人員能夠快速實現和修改邏輯設計,提高開發效率。
六.?復雜的可編程邏輯器件
復雜可編程邏輯器件(Complex Programmable Logic Device,CPLD)是一種大規模的可編程邏輯器件。
CPLD 通常由多個可編程邏輯塊(Logic Block)和可編程互連矩陣(Interconnect Matrix)組成。
其主要特點包括:
- 集成度高:包含大量的邏輯資源,可以實現復雜的邏輯功能。
- 速度快:內部互連結構相對簡單,信號傳輸延遲較小,具有較高的工作速度。
- 編程靈活:用戶可以通過特定的編程工具對其進行邏輯設計和功能定制。
- 可靠性高:采用了先進的制造工藝和封裝技術,具有較好的穩定性和可靠性。
CPLD 適用于需要較高速度和較多邏輯資源的數字系統設計,如通信設備、工業控制、計算機硬件等領域。
常見的編程方式:
CPLD 常見的編程方式主要有以下幾種:
- 在系統可編程(In-System Programmability,ISP):無需將 CPLD 從系統中取出,直接通過特定的接口和編程工具,在電路系統中對其進行編程。
- 在電路可重構(In-Circuit Reconfigurability,ICR):在設備處于運行狀態時,能夠動態地改變 CPLD 的邏輯配置。
- 使用專用編程器編程:將 CPLD 芯片從電路板上取下,放入專門的編程器中進行編程。
這些編程方式為用戶提供了靈活選擇,以滿足不同的設計和應用需求。
七.?現場可編程門陣列
現場可編程門陣列(Field Programmable Gate Array,FPGA)是一種高度靈活的可編程邏輯器件。
FPGA 通常由可編程邏輯塊(Logic Block)、可編程互連(Interconnect)和輸入輸出塊(I/O Block)組成。
其主要特點包括:
- 靈活性極高:能夠實現各種復雜的數字邏輯功能,用戶可以根據具體需求自由配置邏輯資源。
- 并行處理能力強:可以同時處理多個任務,大大提高系統的處理速度。
- 集成度高:可以集成大量的邏輯單元、存儲單元和乘法器等,實現大規模的數字系統。
- 開發周期短:使用硬件描述語言進行編程,設計和驗證過程相對較快,能快速推出產品。
- 可重構性:能夠在系統運行時重新配置邏輯功能,適應不同的應用場景。
FPGA 在通信、圖像處理、人工智能、工業控制等眾多領域都有廣泛的應用。
工作原理:
現場可編程門陣列(FPGA)的工作原理主要基于查找表(Look-Up Table,LUT)和可編程的互連資源。
FPGA 內部包含大量的可編程邏輯單元(Logic Element,LE),每個邏輯單元通常由一個查找表、一個觸發器和一些相關的邏輯電路組成。
查找表是實現邏輯功能的核心部分。對于常見的邏輯功能(如與、或、非等),查找表預先存儲了所有可能的輸入組合對應的輸出值。當輸入信號到達時,通過查找表快速確定輸出結果。
可編程的互連資源用于連接各個邏輯單元,以形成所需的邏輯電路結構。用戶通過編程工具指定這些互連的連接方式,從而實現不同的邏輯功能和電路拓撲。
輸入輸出模塊(I/O)負責與外部設備進行數據的輸入和輸出。
時鐘管理模塊用于提供穩定的時鐘信號,確保整個系統的同步運行。
配置存儲器存儲了用戶設計的邏輯配置信息,在 FPGA 上電時加載到各個單元中,從而確定其工作模式和功能。
總之,通過對查找表、互連資源的編程配置以及時鐘和 I/O 的管理,FPGA 能夠實現用戶定義的各種復雜數字邏輯功能。