采用FPGA開發(fā)真正符合需求的系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
要實(shí)現(xiàn)能夠?qū)⑺兄匾δ芗稍趩我黄骷脑O(shè)計(jì)理由很簡單,因?yàn)檫@樣就能將材料成本、部件庫存及電路板面積減至最低。另外,相較于多芯片解決方案,單芯片方案的功耗也較低,同時(shí)也有助于提高對知識(shí)產(chǎn)權(quán)的保護(hù)。如果一項(xiàng)設(shè)計(jì)功能的精髓能夠深植于單一芯片上,將會(huì)大大增加第三方取得這項(xiàng)設(shè)計(jì)的困難度。
單芯片系統(tǒng)對嵌入式系統(tǒng)設(shè)計(jì)師來說,往往會(huì)隨著其面對的不同的系統(tǒng)設(shè)計(jì)而各有不同。例如,在龐大的娛樂或通信消費(fèi)產(chǎn)品市場中,SoC意味著一顆具有數(shù)百萬邏輯門的集成電路(IC),其中包含許多大型定制邏輯模塊,并有將芯片的數(shù)字處理性能與外部世界連接的混合信號(hào)功能。在現(xiàn)實(shí)世界中,能夠支持這樣大規(guī)模的SoC開發(fā)的項(xiàng)目數(shù)量非常有限。
單芯片夢想
對大部分的設(shè)計(jì)團(tuán)隊(duì)來說,這樣的SoC目標(biāo)仍然是一個(gè)夢想。能夠大量生產(chǎn)以支持一個(gè)完全定制化混合信號(hào)芯片開發(fā)的產(chǎn)品仍然是少數(shù)。絕大部分的產(chǎn)品都是采用專用標(biāo)準(zhǔn)產(chǎn)品(ASSP)或微控制器作為其解決方案的核心。在這樣的情況下,想要找到一個(gè)能夠完全符合項(xiàng)目需求的器件通常是一大難題。就定義來看,ASSP能夠?yàn)槟骋惶囟☉?yīng)用領(lǐng)域的設(shè)計(jì)問題提供一種解決方案,但是這樣的典型解決方案不可能完全符合真實(shí)世界中的項(xiàng)目需求。結(jié)果,通常是采用性能和參數(shù)超過需求的器件,或開發(fā)附加電路以彌補(bǔ)標(biāo)準(zhǔn)產(chǎn)品與實(shí)際需求之間的落差。此外,ASSP的靈活度不高,一旦選用了某顆IC,它的功能往往會(huì)限制產(chǎn)品后續(xù)的設(shè)計(jì)進(jìn)展。
大部分的常用解決方案都不免會(huì)以微控制器(MCU)為基礎(chǔ)。雖然其軟件可編程性可提供不錯(cuò)的靈活度,但是很少有MCU能提供與典型嵌入式設(shè)計(jì)需求完全相符的功能。大部分這類的設(shè)計(jì)都會(huì)在MCU之外另加入不同形式的可編程邏輯(FPGA或CPLD),以增加硬件中的邏輯功能。盡管現(xiàn)今市場上有各種帶有不同外設(shè)的MCU可供選用,但是絕大多數(shù)的嵌入式系統(tǒng)電路板上都沒有提供各種作為信號(hào)調(diào)節(jié)和I/O連接用途的模擬器件。
混合信號(hào)FPGA
愛特過去一直在通過提供Fusion混合信號(hào)FPGA,為上述設(shè)計(jì)提供解決方案。Fusion混合信號(hào)FPGA在單一器件上結(jié)合了高密度可編程邏輯和可配置模擬電路功能,另外還包括大容量的閃存模塊、完整的時(shí)鐘生成、管理電路以及在FPGA邏輯中嵌入微控制器軟核等設(shè)計(jì)選項(xiàng)。
SmartFusion混合信號(hào)FPGA將高密度、基于閃存的FPGA、一個(gè)具完整外設(shè)組合的ARM Cortex -M3微控制器內(nèi)核,以及高效可編程模擬功能全部都集成在一顆單芯片上。
圖1 SmartFusion混合信號(hào)FPGA結(jié)構(gòu)
ARM Cortex-M3處理器已不需要太多介紹。在SmartFusion芯片中,Cortex-M3處理器是個(gè)100MHz(125 DMIPS)器件,擁有最高容量為512KB的閃存和128KB的SRAM。在此系列FPGA中,處理器是一個(gè)硬核,這代表它是以最小面積來實(shí)現(xiàn)的,可帶來多項(xiàng)好處。它的效能足以執(zhí)行復(fù)雜算法,像精密電機(jī)控制、數(shù)個(gè)電機(jī)的多軸控制等。此外,在諸如系統(tǒng)管理等應(yīng)用中,它能執(zhí)行所有的電壓監(jiān)測、排序、風(fēng)扇控制,以及相關(guān)的系統(tǒng)基本運(yùn)作,同時(shí)還具備充裕的能力來執(zhí)行更高級(jí)、用戶應(yīng)用級(jí)別的任務(wù)。
外設(shè)與接口
與在SmartFusion器件中以更小面積實(shí)現(xiàn)處理器硬核的方式相同,此器件也包含了常用外設(shè)的完整組合。
圖2 SmartFusion系列器件具有豐富的外設(shè)及接口
SmartFusion器件提供一個(gè)10/100 Ethernet MAC(媒體存取控制器)和其他接口,諸如SPI、I2C以及UART。大量的數(shù)字(FPGA)I/O最快可執(zhí)行350MHz,并支持LVDS、PCI和LVPECL等I/O接口標(biāo)準(zhǔn)。慣于采用微控制器進(jìn)行設(shè)計(jì)的工程師會(huì)喜歡此器件所包含的其他特性和功能,例如,實(shí)時(shí)時(shí)鐘、DMA控制器、外部存儲(chǔ)控制器、定時(shí)器和看門狗(watchdog)功能。
在硅片上,除了ARM Cortex-M3內(nèi)核,還有豐富的基于快閃的ProASIC 3 FPGA邏輯。此可編程邏輯可提供350MHz的系統(tǒng)效能;同時(shí),SmartFusion系列器件最高可提供50萬門的可編程邏輯和108KB的內(nèi)建SRAM?;诳扉WFPGA架構(gòu)可完全免于由高能量輻射引發(fā)的固件錯(cuò)誤(radiation-induced firm errors),此現(xiàn)象有時(shí)會(huì)影響基于SRAM的器件,同時(shí)也是許多嵌入式系統(tǒng)設(shè)計(jì)人員的主要考慮因素。由于FPGA的配置是設(shè)定在快閃單元(flash cell)中(ARM內(nèi)核可從片上閃存執(zhí)行),而整塊芯片是上電即用,無須等待配置文件從ROM或EPROM加載的時(shí)間。此外,閃存也能允許用來進(jìn)行現(xiàn)場升級(jí),但是有時(shí)出于系統(tǒng)安全考慮,這種現(xiàn)場升級(jí)功能被取消。在編程結(jié)束之后,進(jìn)一步存取配置存儲(chǔ)器可被設(shè)置為永遠(yuǎn)停用。
在微控制器子系統(tǒng)內(nèi),有一個(gè)五層的ARM AHB總線矩陣架構(gòu),理論上共可提供片上每秒16GB/s的頻寬。其中共有五個(gè)功能可供設(shè)定為總線主控(master):10/100 Ethernet MAC、DMA控制器和FPGA架構(gòu)主控,另外兩個(gè)來自Cortex-M3內(nèi)核,而其他各種接口與存儲(chǔ)模塊則作為從屬(slave)。
可編程模擬
SmartFusion器件的第三個(gè)重要元素是高電壓雙極模擬功能。為了正確獲取來自應(yīng)用程序的信號(hào),SmartFusion器件最高可具備三個(gè)12位逐次逼近寄存器(SAR)模數(shù)轉(zhuǎn)換器(ADC),其最高執(zhí)行速度為600ksps。每個(gè)ADC都有相對的第一階(first-order)1位sigma-delta DAC,能提供500ksps更新與12位有效分辨率。多個(gè)模擬功能都集中在信號(hào)調(diào)節(jié)模塊(signal conditioning block,SCB)中,其中包含準(zhǔn)確高電壓和電流監(jiān)控器、溫度監(jiān)控器和高速比較器。此高壓監(jiān)控器,也稱為有源雙極預(yù)分壓器(active bipolar prescalers,ABPS),可提供-11.5V〜+14V的電壓監(jiān)控能力。
此外,對系統(tǒng)管理或電源調(diào)節(jié)領(lǐng)域的設(shè)計(jì)人員來說,這也可作為絕佳的工具。器件中的電流監(jiān)控器可放大從外部感測電阻測量到的電壓降,而此感測電阻放置在應(yīng)用的電流回路上,差分增益為50。溫度監(jiān)控器能把一個(gè)簡單的PN結(jié)的電壓降轉(zhuǎn)換為溫度讀數(shù)。器件具備數(shù)量很多的片上比較器(在一50萬門器件中最多有10個(gè)),而且速度非常快,傳送時(shí)間僅為50ns。
自主(Autonomous)模擬信號(hào)處理
前面提到的模擬功能只是SmartFusion混合信號(hào)FPGA中模擬處理性能的一部分。而模擬運(yùn)算引擎(ACE)是一個(gè)全新的概念,這是一個(gè)半自主的功能模塊,無須ARM Cortex-M3處理器的介入,便能夠執(zhí)行完整的模擬前/后處理,包括信號(hào)采集的采樣和排序。
由于ARM Cortex-M3內(nèi)核就在ACE附近,初看起來在ACE模塊中加入這樣的功能似乎是多余的。然而,半自主的ACE可減少處理器內(nèi)核的日常任務(wù),例如,信號(hào)采集、處理、存儲(chǔ)和輸出等工作完全無須通過Cortex-M3處理器就能完成。設(shè)計(jì)人員能以這種方式配置器件,以使Cortex-M3處理器不受其他影響地執(zhí)行實(shí)時(shí)處理任務(wù)。
在一個(gè)電源管理的設(shè)計(jì)工作中,監(jiān)測每一電壓軌是否偏離正常值以及警告等工作都由ACE來執(zhí)行,它還有可應(yīng)付更復(fù)雜的任務(wù)的能力,包括濾波和線性轉(zhuǎn)換等。它所處理的可編程模擬模塊包括ADC、DAC、和SCB。注意,此模擬模塊擁有與微控制器子系統(tǒng)和FPGA架構(gòu)的豐富連接組合。這些元素中的每一項(xiàng),不管是單獨(dú)或作為一組功能模塊,其互連和工作參數(shù)都是可完全編程的。
設(shè)計(jì)靈活性更上一層樓
對于SmartFusion而言,器件和其相關(guān)的設(shè)計(jì)工具都已準(zhǔn)備就緒,因此不管是具備何種背景的工程師,都能充滿信心地執(zhí)行一個(gè)完整的設(shè)計(jì)。
當(dāng)利用SmartFusion器件進(jìn)行設(shè)計(jì)時(shí),一種基于圖形化用戶界面(GUI-based)拖放的操作方式(drag-and-drop-style)可提供對完整預(yù)定義IP功能庫的立即存取。對C語言和RTL程序代碼開發(fā)人員來說,此工具套件可擴(kuò)展他們的專業(yè)領(lǐng)域,因此芯片的資源能充分被使用。此設(shè)計(jì)工具可提供協(xié)作環(huán)境,讓傳統(tǒng)的設(shè)計(jì)團(tuán)隊(duì)能針對SmartFusion的不同領(lǐng)域共同合作。
設(shè)計(jì)安全性
在現(xiàn)有的基于快閃FPGA系列器件中,愛特已對可編程邏輯提供了增強(qiáng)的設(shè)計(jì)安全性。ARM公司愿意將其處理器內(nèi)核的軟件版本授權(quán)給愛特公司,并在其FPGA中實(shí)現(xiàn),就可以證明對于此設(shè)計(jì)安全性的信心。一旦編程到陣列之中,黑客將難以從硅片中讀取此內(nèi)核的IP?,F(xiàn)在,微控制器內(nèi)核與FPGA架構(gòu)在相同的硅片上,此保護(hù)也延伸到系統(tǒng)軟件以及FPGA配置碼。ARM Cortex-M3是一個(gè)硬核,因此現(xiàn)已不需要這樣的保護(hù)形式。
在單芯片環(huán)境中可提供固有的IP安全性,由于SmartFusion是一個(gè)快閃器件,因而不再需要從外部存儲(chǔ)讀取配置檔案。在執(zhí)行時(shí),諸如FPGA到ARM內(nèi)核總線的內(nèi)部接口是看不到的,同時(shí)在它們上面的流量也無法監(jiān)控。
此外,還有多種額外選項(xiàng)可供設(shè)計(jì)人員用來保護(hù)IP。最簡單的方法是將存有FPGA配置的閃存以及Cortex-M3程序代碼編程到“干凈”的區(qū)域中,并設(shè)定一個(gè)“生效時(shí)切斷保險(xiǎn)絲”的條件,防止此閃存區(qū)域被讀取或重新編程。此功能也稱為FlashLock。從Actel Libero集成式設(shè)計(jì)環(huán)境(IDE)輸出的資料,包含配置和運(yùn)行時(shí)間(run-time)程序代碼,也能用128位AES標(biāo)準(zhǔn)進(jìn)行加密,以期在安全的制造環(huán)境之外也可以確保其IP得到保護(hù)。如果以匹配(matching)程序檔案做好設(shè)定,一個(gè)內(nèi)建的128位AES解密引擎可在最后的產(chǎn)品制造期間進(jìn)行安全的系統(tǒng)內(nèi)(in-system)編程。