- Intel FPGA/CPLD設計(基礎篇)
- 王欣 王江宏 蔡海寧 王誠 吳繼華
- 1562字
- 2019-09-10 13:13:42
1.1 可編程邏輯設計技術簡介
本節在討論可編程邏輯器件發展簡史的基礎上簡述目前常用的可編程邏輯器件的分類。
1.1.1 可編程邏輯器件發展簡史
隨著微電子設計技術與工藝的發展,數字集成電路從電子管、晶體管、中小規模集成電路、超大規模集成電路(VLSIC)逐步發展到今天的專用集成電路(ASIC)。ASIC的出現降低了產品的生產成本,提高了系統的可靠性,縮小了設計的物理尺寸,推動了社會的數字化進程。但是,ASIC設計周期長、改版投資大、靈活性差等缺陷,制約了ASIC的應用范圍。硬件工程師希望有一種更靈活的設計方法,可根據需要在實驗室就能設計、更改大規模數字邏輯,研制自己的ASIC并馬上投入使用,這是提出可編程邏輯器件的基本思想。
可編程邏輯器件隨著微電子制造工藝的發展取得了長足的進步。從早期的只能存儲少量數據,完成簡單邏輯功能的可編程只讀存儲器(PROM)、紫外線可擦除只讀存儲器(EPROM)和電可擦除只讀存儲器(E2PROM),發展到能完成中大規模的數字邏輯功能的可編程陣列邏輯(PAL)和通用陣列邏輯(GAL),今天已經發展成為可以完成超大規模的復雜組合邏輯與時序邏輯的復雜可編程邏輯器件(CPLD)和現場可編程邏輯器件(FPGA)。隨著工藝技術的發展與市場需要,超大規模、高速、低功耗的新型FPGA/CPLD不斷推陳出新。新一代的FPGA甚至集成了中央處理器(CPU)或數字處理器(DSP)內核,在一片 FPGA 上進行軟硬件協同設計,為實現片上可編程系統(System On Programmable Chip,SOPC)提供了強大的硬件支持。
1.1.2 可編程邏輯器件分類
廣義上講,可編程邏輯器件是指一切通過軟件手段更改、配置器件內部連接結構和邏輯單元,完成既定設計功能的數字集成電路。目前常用的可編程邏輯器件主要有簡單的邏輯陣列(PAL/GAL)、復雜可編程邏輯器件(CPLD)和現場可編程邏輯陣列(FPGA)等3大類。
PAL/GAL。PAL是Programmable Array Logic的縮寫,即可編程陣列邏輯;GAL是Generic Array Logic的縮寫,即通用可編程陣列邏輯。PAL/GAL是早期可編程邏輯器件的發展形式,其特點是大多基于E2CMOS工藝,結構較為簡單,可編程邏輯單元多為與陣列和或陣列,可編程單元密度較低,僅能適用于某些簡單的數字邏輯電路。雖然PAL/GAL密度較低,但是它們一出現即以其低功耗、低成本、高可靠性、軟件可編程、可重復更改等特點引發了數字電路領域的巨大振動。雖然目前較復雜的邏輯電路一般使用CPLD甚至FPGA完成,但是對于很多簡單的數字邏輯,GAL等簡單的可編程邏輯器件仍然被大量使用。目前,國內外很多對成本十分敏感的設計都在使用GAL等低成本可編程邏輯器件,越來越多的74系列邏輯電路被GAL取代。GAL等器件發展至今已經20多年,新一代的GAL以功能靈活、小封裝、低成本、重復可編程、應用靈活等優點仍然在數字電路領域扮演著重要的角色。目前,比較大的GAL器件供應商主要是Lattice半導體。
(1) CPLD。
CPLD是Complex Programmable Logic Device的縮寫,即復雜的可編程邏輯器件。Altera為了突出特性,曾將自己的CPLD器件稱為EPLD(Enhanced Programmable Logic Device),即增強型可編程邏輯器件。其實EPLD和CPLD屬于同等性質的邏輯器件,目前Altera為了遵循稱呼習慣,已經將其EPLD統稱為CPLD。CPLD是在PAL、GAL的基礎上發展起來的,一般采用E2CMOS工藝,也有少數廠商采用Flash工藝,其基本結構由可編程I/O單元、基本邏輯單元、布線池和其他輔助功能模塊構成。CPLD可實現的邏輯功能比PAL和GAL有了大幅度提升,一般可以完成設計中較復雜、較高速度的邏輯功能,如接口轉換、總線控制等。CPLD的主要器件供應商有Altera、Lattice和Xilinx等。
(2) FPGA。
FPGA是Filed Programmable Gate Array的縮寫,即現場可編程邏輯陣列。FPGA是在CPLD的基礎上發展起來的新型高性能可編程邏輯器件,一般采用SRAM工藝,也有一些專用器件采用Flash工藝或反熔絲(Anti-Fuse)工藝等。FPGA的集成度很高,其器件密度從數萬系統門到數千萬系統門不等,可以完成極其復雜的時序與組合邏輯電路功能,適用于高速、高密度的高端數字邏輯電路設計領域。FPGA的基本組成部分有可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元、內嵌專用硬核等。FPGA的主要器件供應商有Xilinx、Altera、Lattice、Actel和Atmel等。
- 新型電腦主板關鍵電路維修圖冊
- BeagleBone By Example
- 從零開始學51單片機C語言
- Artificial Intelligence Business:How you can profit from AI
- Machine Learning with Go Quick Start Guide
- 電腦高級維修及故障排除實戰
- 深入理解序列化與反序列化
- Blender Game Engine:Beginner's Guide
- Hands-On Motion Graphics with Adobe After Effects CC
- FPGA實驗實訓教程
- FPGA實戰訓練精粹
- 電腦主板維修技術
- 現代多媒體技術及應用
- Arduino案例實戰(卷Ⅳ)
- PIC系列單片機的流碼編程