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

如果沒(méi)有連接CPLD,F(xiàn)X3不會(huì)從CyU3PGpifSMStart() 調(diào)用返回,怎么解決?
AG32 MCU中CPLD使用基礎(chǔ)(二)
CPLD 在汽車(chē)電子中的應(yīng)用
CPLD 與 ASIC 的比較
如何優(yōu)化 CPLD 性能
常見(jiàn) CPLD 故障排除方法
CPLD 的功耗控制技巧
CPLD 優(yōu)勢(shì)與劣勢(shì)分析
CPLD 在嵌入式系統(tǒng)中的應(yīng)用
CPLD 應(yīng)用場(chǎng)景分析
CPLD 與 FPGA 的區(qū)別
詳解FPGA的基本結(jié)構(gòu)

如何將自定義邏輯從FPGA/CPLD遷移到C2000?微控制器

評(píng)論