FPGA基本原理和內(nèi)部結(jié)構(gòu)
一、FPGA原理
FPGA中的基本邏輯單元是CLB模塊,一個(gè)CLB模塊一般包含若干個(gè)基本的查找表、寄存器和多路選擇器資源,因此FPGA中的邏輯表達(dá)式基于LUT的。
FPGA內(nèi)部的編程信息一般存儲(chǔ)在SRAM單元中,因此通常的FPGA都是基于SRAM的,所以掉電后信息會(huì)丟失,下次上電需要先配置才能使用。
著重介紹Xilinx FPGA,
二、FPGA產(chǎn)品的速度等級(jí)
速度等級(jí)一般反映一款芯片的性能,速度等級(jí)越高,說(shuō)明芯片內(nèi)的邏輯延時(shí)和布線延時(shí)越小,設(shè)計(jì)的性能要求也越容易達(dá)到,隨之付出的成本也越大。
對(duì)Xilinx FPGA,速度等級(jí)一般有“-1”、“-2”、“-3”等,數(shù)字越大,速度等級(jí)越高,芯片價(jià)錢(qián)也越貴。
對(duì)Intel FPGA,速度等級(jí)一般有“-6”、“-7”、“-8”,數(shù)字越小表示速度等級(jí)越高、價(jià)錢(qián)越貴。
三、FPGA內(nèi)部資源
邏輯資源塊是FPGA內(nèi)部最重要的資源,Xilinx稱其為CLB(configurable logic block);
7系列中,F(xiàn)PGA內(nèi)部三大主要資源:可編程邏輯單元、可編程I/O單元、布線資源
1、可配置邏輯單元(configurable logic block)
CLB在FPGA中最為豐富,由兩個(gè)SLICE構(gòu)成,SLICE分為SLICEL(L:Logic)和SLICEM(M:Memory),因此CLB可分為CLBLL和CLBLM兩類(lèi);
SLICEL和SLICEM內(nèi)部都包含4個(gè)6輸入查找表(LUT6)、3個(gè)數(shù)據(jù)選擇器(MUX)、1個(gè)進(jìn)位鏈(carry chain)和8個(gè)觸發(fā)器(Flip-Flop);
2、存儲(chǔ)單元(Block RAM)
Block RAM可以被配置為同步、異步、單端口、雙端口的RAM或FIFO,或者ROM;
3、運(yùn)算單元(DSP48E1)
當(dāng)FPGA需要復(fù)雜的運(yùn)算時(shí),會(huì)使用DSP48E1,例如乘法;
什么是STM32?
意法半導(dǎo)體(ST)集團(tuán)于1988年6月成立,是由意大利的SGS微電子公司和法國(guó)Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司,是世界最大的半導(dǎo)體公司之一。 STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門(mén)設(shè)計(jì)的ARM Cortex?-M0,M0+,M3, M4和M7內(nèi)核(ST‘s product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex?-M0 and M0+, Cortex?-M3, Cortex?-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform)。
它具有以下三個(gè)特點(diǎn):
?新的基于ARM內(nèi)核的32位MCU系列
–標(biāo)準(zhǔn)的ARM架構(gòu) –內(nèi)核為ARM公司為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門(mén)設(shè)計(jì)的Cortex-M內(nèi)核
?超前的體系結(jié)構(gòu)
–高性能 –低電壓 –低功耗 –創(chuàng)新的內(nèi)核以及外設(shè)
?簡(jiǎn)單易用/自由/低風(fēng)險(xiǎn)
Cortex-M3系列屬于ARMv7架構(gòu)
ARMv7架構(gòu)定義了三大分工明確的系列:
“A”系列:面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應(yīng)用
“R”系列:針對(duì)實(shí)時(shí)系統(tǒng);
“M”系列:對(duì)微控制器。
STM32F1屬于Cortex-M系列中的Cortex-M3內(nèi)核,采用ARMv7-M架構(gòu)。STM32F4屬于Cortex-M4系列采用ARMv7-ME架構(gòu)。Cortex-A5/A8采用ARMv7-A架構(gòu)。傳統(tǒng)的ARM7系列采用的是ARMv4T架構(gòu)。
那么STM32與ARM有什么區(qū)別呢?
Cortex-M家族
STM32和ARM有什么區(qū)別
STM32的命名規(guī)則
STM32的應(yīng)用場(chǎng)景
STM32的應(yīng)用場(chǎng)景還有很多,這里只是簡(jiǎn)單地列出一些。
總的來(lái)說(shuō)STM32具有如下優(yōu)勢(shì):
1)極高的性能:主流的Cortex內(nèi)核。
2)豐富合理的外設(shè),合理的功耗,合理的價(jià)格。
3)強(qiáng)大的軟件支持:豐富的軟件包。
4)全面豐富的技術(shù)文檔。
5)芯片型號(hào)種類(lèi)多,覆蓋面廣。
6)強(qiáng)大的用戶基礎(chǔ):最先成功試水CM3芯片的公司,積累了大批的用戶群體,為其領(lǐng)先做鋪墊。
stm32與fpga的優(yōu)缺點(diǎn)
一個(gè)屬于單片機(jī)STM32 ,一個(gè)屬于可編程陣列FPGA。
STM32由于有各種外設(shè)操作起來(lái)簡(jiǎn)單,可以處理模擬以及數(shù)字信號(hào),適用于設(shè)計(jì)的控制電路FPGA應(yīng)用也比較廣泛,只能處理數(shù)字信號(hào),但是能同時(shí)運(yùn)行多條指令,也就是并行執(zhí)行,這是單片機(jī)、ARM等比不了的,主要用于處理各種邏輯。
STM32代表ARM Cortex-M內(nèi)核的32位微控制器,具有高性能,實(shí)時(shí)性強(qiáng),低功耗,便于低電壓操作等優(yōu)點(diǎn),同時(shí)還易于開(kāi)發(fā)。
按內(nèi)核架構(gòu)分,有STM32F103“增強(qiáng)型”系、STM32F101“基本型”系列、STM32F105、STM32F107“互聯(lián)型”系列。其中增強(qiáng)型系列時(shí)鐘頻率達(dá)到72MHz,是同類(lèi)產(chǎn)品中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36MHz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是32位產(chǎn)品用戶的最佳選擇。兩個(gè)系列都內(nèi)置32K到128K的閃存,不同的是 SRAM的最大容量和外設(shè)接口的組合。時(shí)鐘頻率72MHz時(shí),從閃存執(zhí)行代碼,STM32功耗36mA,是32位市場(chǎng)上功耗最低的產(chǎn)品,相當(dāng)于0.5mA/MHz。
FPGA是英文Field-Programmable Gate Array的縮寫(xiě),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。
評(píng)論
查看更多