本文主要介紹CPLD和FPGA的基本結(jié)構(gòu)。
CPLD是復(fù)雜可編程邏輯器件(Complex Programable Logic Device)的簡稱,F(xiàn)PGA是現(xiàn)場可編程門陣列(Field Programable Gate Array)的簡稱,兩者的功能基本相同,編程等過程也基本相同(燒寫文件不一樣,但是是由軟件自動產(chǎn)生的),只是芯片內(nèi)部的實現(xiàn)原理和結(jié)構(gòu)略有不同。
CPLD
CPLD主要由可編程I/O單元、基本邏輯單元、布線池和其他輔助功能模塊構(gòu)成。
可編程邏輯單元
作用與FPGA的基本I/O口相同,但是CPLD應(yīng)用范圍局限性較大,I/O的性能和復(fù)雜度與FPGA相比有一定的差距,支撐的I/O標(biāo)準(zhǔn)較少,頻率也較低。
基本邏輯單元
CPLD中基本邏輯單元是宏單元。所謂宏單元就是由一些與、或陣列加上觸發(fā)器構(gòu)成的,其中“與或”陣列完成組合邏輯功能,觸發(fā)器用以完成時序邏輯。 與CPLD基本邏輯單元相關(guān)的另外一個重要概念是乘積項。所謂乘積項就是宏單元中與陣列的輸出,其數(shù)量標(biāo)志了CPLD容量。乘積項陣列實際上就是一個“與或”陣列,每一個交叉點都是一個可編程熔絲,如果導(dǎo)通就是實現(xiàn)“與”邏輯,在“與”陣列后一般還有一個“或”陣列,用以完成最小邏輯表達(dá)式中的“或”關(guān)系。
布線池、布線矩陣
CPLD中的布線資源比FPGA的要簡單的多,布線資源也相對有限,一般采用集中式布線池結(jié)構(gòu)。所謂布線池,其本質(zhì)就是一個開關(guān)矩陣,通過打結(jié)點可以完成不同宏單元的輸入與輸出項之間的連接。由于CPLD器件內(nèi)部互連資源比較缺乏,所以在某些情況下器件布線時會遇到一定的困難。由于CPLD的布線池結(jié)構(gòu)固定,所以CPLD的輸入管腳到輸出管腳的延時固定,被稱為Pin to Pin延時,用Tpd表示,Tpd延時反映了CPLD器件可以實現(xiàn)的最高頻率,也就清晰地表明了CPLD器件的速度等級。
FPGA
FPGA由6部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等。
可編程輸入/輸出單元(IOB)
可編程輸入/輸出單元是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅(qū)動與匹配要求。FPGA內(nèi)部的I/O按組分類,每組都能夠獨立地支持不同的I/O標(biāo)準(zhǔn)。通過軟件的靈活配置,可適應(yīng)不同的電氣標(biāo)準(zhǔn)與I/O物理特性,可以調(diào)整匹配阻抗特性,可以改變上、下拉電阻,可以調(diào)整驅(qū)動電流的大小。 外部輸入信號可以通過IOB模塊的存儲單元輸入到FPGA的內(nèi)部,也可以直接輸入FPGA內(nèi)部。當(dāng)外部輸入信號經(jīng)過IOB模塊的存儲單元輸入到FPGA內(nèi)部時,其保持時間(Hold Time)的要求可以降低,通常默認(rèn)為0。 為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個組(bank),每個bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個bank只能有一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件。
基本可編程邏輯單元
FPGA的基本可編程邏輯單元是由查找表(LUT)和寄存器(Register)組成的,查找表完成純組合邏輯功能。FPGA內(nèi)部寄存器可配置為帶同步/異步復(fù)位和置位、時鐘使能的觸發(fā)器,也可以配置成為鎖存器。FPGA一般依賴寄存器完成同步時序邏輯設(shè)計。一般來說,比較經(jīng)典的基本可編程單元的配置是一個寄存器加一個查找表,但不同廠商的寄存器和查找表的內(nèi)部結(jié)構(gòu)有一定的差異,而且寄存器和查找表的組合模式也不同。 了解底層配置單元的LUT和Register比率的一個重要意義在于器件選型和規(guī)模估算。由于FPGA內(nèi)部除了基本可編程邏輯單元外,還有嵌入式的RAM、PLL或DLL,專用的Hard IP Core等,這些模塊也能等效出一定規(guī)模的系統(tǒng)門,所以簡單科學(xué)的方法是用器件的Register或LUT的數(shù)量衡量。
嵌入式塊RAM
目前大多數(shù)FPGA都有內(nèi)嵌的塊RAM。嵌入式塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲器(CAM)以及FIFO等常用存儲結(jié)構(gòu)。 CAM,即為內(nèi)容地址存儲器。寫入CAM的數(shù)據(jù)會和其內(nèi)部存儲的每一個數(shù)據(jù)進行比較,并返回與端口數(shù)據(jù)相同的所有內(nèi)部數(shù)據(jù)的地址。簡單的說,RAM是一種寫地址,讀數(shù)據(jù)的存儲單元;CAM與RAM恰恰相反。 除了塊RAM,Xilinx和Lattice的FPGA還可以靈活地將LUT配置成RAM、ROM、FIFO等存儲結(jié)構(gòu)。
豐富的布線資源
布線資源連通FPGA內(nèi)部所有單元,連線的長度和工藝決定著信號在連線上的驅(qū)動能力和傳輸速度。根據(jù)工藝、長度、寬度和分布位置的不同而劃分為4類不同的類別:
全局性的專用布線資源:用以完成芯片內(nèi)部全局時鐘和全局復(fù)位/置位的布線;
長線資源:用以完成器件Bank間的一些高速信號和一些第二全局時鐘信號的布線;
短線資源:用來完成基本邏輯單元間的邏輯互連與布線;
其他:在邏輯單元內(nèi)部還有著各種布線資源和專用時鐘、復(fù)位等控制信號線。
由于在設(shè)計過程中,往往由布局布線器自動根據(jù)輸入的邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇可用的布線資源連通所用的底層單元模塊,所以常常忽略布線資源。其實布線資源的優(yōu)化與使用和實現(xiàn)結(jié)果有直接關(guān)系。
底層內(nèi)嵌功能單元
內(nèi)嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等軟處理核(Soft Core)?,F(xiàn)在越來越豐富的內(nèi)嵌功能單元,使得單片F(xiàn)PGA成為了系統(tǒng)級的設(shè)計工具,使其具備了軟硬件聯(lián)合設(shè)計的能力,逐步向SOC平臺過渡。 DLL和PLL具有類似的功能,可以完成時鐘高精度、低抖動的倍頻和分頻,以及占空比調(diào)整和移相等功能。Xilinx公司生產(chǎn)的芯片上集成了DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同時集成了PLL和DLL。PLL和DLL可以通過IP核生成的工具方便地進行管理和配置。
內(nèi)嵌專用硬核
與“底層嵌入單元”是有區(qū)別的,這里指的硬核主要是那些通用性相對較弱,不是所有FPGA器件都包含的硬核。 內(nèi)嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA處理能力強大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA中都集成了專用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十Gbps的收發(fā)速度。 Xilinx公司的高端產(chǎn)品不僅集成了ARM,還內(nèi)嵌了DSP Core模塊,并提出MPSoC、RFSoC等概念。
原文標(biāo)題:FPGA系列之“CPLD和FPGA的基本結(jié)構(gòu)”
文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
FPGA
+關(guān)注
關(guān)注
1630文章
21799瀏覽量
606196 -
cpld
+關(guān)注
關(guān)注
32文章
1257瀏覽量
169652
原文標(biāo)題:FPGA系列之“CPLD和FPGA的基本結(jié)構(gòu)”
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
CPLD 在汽車電子中的應(yīng)用
如何優(yōu)化 CPLD 性能
常見 CPLD 故障排除方法
CPLD 優(yōu)勢與劣勢分析
CPLD 在嵌入式系統(tǒng)中的應(yīng)用
CPLD 應(yīng)用場景分析
CPLD 與 FPGA 的區(qū)別
詳解FPGA的基本結(jié)構(gòu)
![詳解<b class='flag-5'>FPGA</b>的基本<b class='flag-5'>結(jié)構(gòu)</b>](https://file1.elecfans.com/web1/M00/F3/B4/wKgZoWcbXIyAb327AAAwW_9Aqco842.png)
如何將自定義邏輯從FPGA/CPLD遷移到C2000?微控制器
![如何將自定義邏輯從<b class='flag-5'>FPGA</b>/<b class='flag-5'>CPLD</b>遷移到C2000?微控制器](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
FPGA的配置模式有哪些?具體配置過程是怎樣的?
深入理解 FPGA 的基礎(chǔ)結(jié)構(gòu)
FPGA和CPLD差異分析(FPGA結(jié)構(gòu)圖)
![<b class='flag-5'>FPGA</b>和<b class='flag-5'>CPLD</b>差異分析(<b class='flag-5'>FPGA</b><b class='flag-5'>結(jié)構(gòu)</b>圖)](https://file1.elecfans.com/web2/M00/C5/4B/wKgZomX79_qAFeyiAABupjwT798140.png)
fpga和cpld的區(qū)別
fpga入門基礎(chǔ)知識
FPGA系統(tǒng)規(guī)劃的簡化流程
![<b class='flag-5'>FPGA</b>系統(tǒng)規(guī)劃的簡化流程](https://file1.elecfans.com/web2/M00/C1/61/wKgaomXVo1yALuXxAAApQCVkVqY781.png)
評論