利用混合信號FPGA和先進(jìn)的軟件工具實(shí)現簡(jiǎn)易系統設計
基本設計流程概念
本文引用地址:http://dyxdggzs.com/article/201706/349246.htm標準現貨微處理器基本上只是一塊功能性硅片,需要設計人員進(jìn)行指令編碼,例如在初始設置中配置外設、運行主要功能、與外界連接等。微處理器要在設計人員給予“身份”之后才能開(kāi)始工作,它既可被編程和現場(chǎng)重編程,也能夠進(jìn)行多次重新定義。
另一方面,FPGA也是一塊功能性硅片,它可能包含一些特殊的功能性模塊(如存儲器),但同樣必須在定義“身份”后才能工作。盡管FPGA在I/O的選擇使用上靈活性稍大,而且可并行操作,但它和微處理器一樣,都需要設計人員賦予它們“生命”。
雖然嵌入式設計人員很少同時(shí)從事FPGA設計,FPGA設計人員一般也不會(huì )踏進(jìn)嵌入式領(lǐng)域,但他們的設計流程其實(shí)極為相似。如圖1所示,兩者在設計器件時(shí)都是從零開(kāi)始,采用某種語(yǔ)言編寫(xiě)、編譯或構建代碼,然后對器件進(jìn)行編程和調試。他們都能夠設計出出色又獨特的實(shí)現方案,可能簡(jiǎn)單如控制一盞燈,也可能復雜似一件藝術(shù)品。這些形容簡(jiǎn)化了編寫(xiě)的內容,同時(shí)也意味著(zhù)設計流程偏向于并行化,而且更具兼容性。
集成嵌入式處理器的FPGA
過(guò)去十多年間出現了兩類(lèi)集成處理器的FPGA:帶有處理器軟核的FPGA和帶有處理器硬核的FPGA。它們各有其優(yōu)缺點(diǎn),但其中有些FPGA得以幸存,有的卻慘遭淘汰。問(wèn)題在于嵌入式與 FPGA 設計人員的設計流程和相反特性究竟在多大程度上阻礙了這些器件的快速采納。
帶處理器軟核的FPGA
帶處理器軟核的FPGA主要是由FPGA供應商提供的產(chǎn)品或解決方案。它為FPGA設計人員提供了嘗試嵌入式設計的機會(huì ),不過(guò)由于FPGA設計人員在A(yíng)VR、8051、PIC或ARM等標準處理器上往往擁有自己的個(gè)人偏好、經(jīng)驗和代碼庫,因而往往無(wú)法超過(guò)真正的嵌入式設計人員。多年來(lái),愛(ài)特公司一直致力于為航天產(chǎn)品提供處理器軟核(如8051和Leon),最近更推出了集成了ARM7、8051和ARM?誖CortexTM-M1處理器的快閃FPGA。
處理器軟核的優(yōu)勢一般包括:(1)可以根據需要增加外設;(2)在某些無(wú)需使用所有功能的情況下,可以簡(jiǎn)化指令集以減小占用空間;(3)在需要時(shí)可以把設計移植到更大的FPGA中。
但是這種方案中僅僅是處理器本身就要使用相當大的硅面積,因而成本高于獨立式處理器。外設數量的增加可能導致時(shí)序問(wèn)題,而這超出了嵌入式設計人員的經(jīng)驗范圍。此外,SRAM FPGA沒(méi)有閃存來(lái)存儲代碼和數據,所以必須配置額外的閃存器件,而這也會(huì )影響到I/O要求、電路板版圖和設計復雜性。
從設計角度來(lái)看,進(jìn)行嵌入式設計的FPGA設計人員首先必須解決FPGA中處理器的硬件版圖問(wèn)題,然后再進(jìn)行FPGA內部嵌入式應用的調試。如果只有一個(gè)設計人員進(jìn)行產(chǎn)品開(kāi)發(fā)工作,則開(kāi)發(fā)流程基本上是串行化的。如果在設計中存在缺陷或問(wèn)題,便需要深入剖析許多層面才能找出原因所在(是代碼問(wèn)題、RTL問(wèn)題,還是硬件時(shí)序問(wèn)題)。所有這些都影響著(zhù)產(chǎn)品的上市時(shí)間和可靠性,最終關(guān)系到該項技術(shù)的全面采納。
帶嵌入式處理器硬核的FPGA
帶處理器硬核的FPGA有多種形式,均為行業(yè)標準產(chǎn)品,這一點(diǎn)十分有利于加速產(chǎn)品的推廣應用。例如,Triscend公司擁有8051/ARM FPGA,愛(ài)特梅爾(Atmel)則推出了基于A(yíng)VR的FPSLICTM器件。由于Triscend在FPGA和現有FPGA設計流程方面缺乏深厚背景,所以根據器件需要開(kāi)發(fā)出了一個(gè)對自己有利的工具流程。這個(gè)工具流程能夠更加直觀(guān)地整合各種組件,但缺少一般FPGA用戶(hù)期望的FPGA詳細設計功能。愛(ài)特梅爾擁有FPGA技術(shù)背景,其設計流基于FPGA/嵌入式并行流程,并可通過(guò)配置對話(huà)來(lái)定義兩者間的接口。
這些FPGA都具有一個(gè)優(yōu)點(diǎn),即采用業(yè)界標準處理器。其他優(yōu)點(diǎn)還包括:由于采用業(yè)界標準處理器,能夠使用業(yè)界領(lǐng)先的編譯器(如KeilTM和IAR Systems?誖),從而再次進(jìn)入主流嵌入式領(lǐng)域。處理器硬核的設計流程已被證明對雙方都很有利,不過(guò)FPGA和微處理器之間接口的調試可能是一大挑戰。
一直以來(lái),較高的硅成本都是帶有處理器硬核的FPGA的缺點(diǎn)。硬核處理器的成本曾非常接近獨立式處理器的成本,而當時(shí)FPGA仍然十分昂貴,因此說(shuō)服那些使用1美元或2美元器件的嵌入式設計人員在成本只有15美元的設備中使用FPGA,還要增加一個(gè)額外的外設,對銷(xiāo)售人員或工程師來(lái)說(shuō)都不是一個(gè)好主意。對于FPGA設計人員而言,這些器件中的FPGA實(shí)在太小,無(wú)法激起很大興趣。FPSLIC曾是一個(gè)不錯的點(diǎn)子,工程師都希望找到這方面的項目,不過(guò)一旦進(jìn)入定價(jià)和物流階段,許多機會(huì )都無(wú)法滿(mǎn)足應用的實(shí)際需求。
嵌入式處理器的下一步
由于CMOS工藝的局限性,也因為早期帶硬核處理器的FPGA屬SRAM FPGA,因而并沒(méi)有集成大量的模擬功能。而利用基于快閃技術(shù)的FPGA則有可能增加廣泛的模擬電路。此外,只要再增加一個(gè)用于代碼存儲的集成式快閃模塊,這類(lèi)器件看起來(lái)就像一個(gè)集成了模擬和FPGA的單芯片嵌入式處理器。如果從器件設計流程角度考慮,這就相當于增加了一個(gè)新的設計組件。此時(shí),不僅要進(jìn)行FPGA和嵌入式設計,還需處理模擬設計。于是,這種器件的設計流程需要進(jìn)行三類(lèi)設計:FPGA設計、嵌入式設計和模擬設計。這些任務(wù)可以由3個(gè)、2個(gè)甚至1個(gè)設計人員來(lái)完成,使所有設計人員都必須能夠并行進(jìn)行自己的設計部分,以避免設計周期延長(cháng)與FPGA中軟核處理器的協(xié)作問(wèn)題。
此外,由于FPGA和嵌入式設計人員都是成熟的用戶(hù)團隊,設計流程必須對雙方都具有吸引力,并且沒(méi)有陡峭的學(xué)習曲線(xiàn),而FPGA和嵌入式設計人員都必須能夠確信自己的專(zhuān)業(yè)技術(shù),因此每一方都必須依賴(lài)所做的設計選擇,能夠根據需要訪(fǎng)問(wèn)模擬數據,圖2所示為Actel SmartFusionTM混合信號FPGA,是目前唯一一款集成了FPGA、ARM Cortex-M3處理器硬核和可編程模擬的FPGA。該器件的架構具有清晰的功能性邊界和明確定義的接口,有助于簡(jiǎn)化這類(lèi)器件的設計邊界。
下面從三類(lèi)設計工作劃分的角度來(lái)進(jìn)行分析:
(1)嵌入式設計人員可以像使用常規微控制器一樣,使用帶有一套固定硬外設(藍色部分)的標準ARM Cortex-M3處理器硬核。這稱(chēng)為微控制器子系統(MSS)。這里并無(wú)時(shí)序不確定性。與模擬或FPGA的任何連接都通過(guò)先進(jìn)外設總線(xiàn)(APB)或先進(jìn)高性能總線(xiàn)(AHB)接口完成。盡管FPGA的內容可能有很大改變,但由于存儲器映射具有簡(jiǎn)單、自動(dòng)擴展的特性,它的各個(gè)組件可被視為處理器的外設擴展部分。
(2)FPGA設計人員可以選擇使用FPGA中完全獨立于處理器的部分。由于FPGA帶有功能齊全的陣列、SRAM 和 FIFO模塊,以及包括 LVDS 的I/O,所以設計人員不受折衷FPGA架構的限制。但是現在FPGA設計人員也能夠通過(guò)增加先進(jìn)微控制器總線(xiàn)架構(AMBA)外設來(lái)支持嵌入式設計,或利用AMBA接口開(kāi)發(fā)新的功能,以創(chuàng )建設計專(zhuān)用的新的定制外設。
(3)由于模擬設計沒(méi)有標準的現成設計流程,因此“模擬設計”這個(gè)術(shù)語(yǔ)對不同人的含義可能也不一樣。許多模擬組件是專(zhuān)用標準器件(ASSP),需要定制與處理器的接口。在SmartFusion中,模擬組件與處理器和FPGA集成在一起;在模擬設計中,預定義接口可以實(shí)現更高級別的提取。由于它們易于使用并具有直觀(guān)的圖形格式,最終可獲得適合于所有設計人員的全新一代的模擬配置對話(huà)。
下一代嵌入式處理器設計
假設目前的設計至少有兩名設計人員一起工作,設計中需要兩個(gè)并行設計流程,并采用一種便于兩名設計人員相互交流溝通的方法。圖3為基本的模塊結構。
對于嵌入式設計人員,第一步是查看MSS配置器并選擇外設,然后安排配置設置以及改變I/O屬性。最重要的是,可以根據用戶(hù)的選擇自動(dòng)生成存儲器映射和所選配置需要的全部固件。從這一點(diǎn)出發(fā),嵌入式設計人員便可選擇工作在GNU、Keil或IAR等工具的標準處理器設計流程內。實(shí)際上,無(wú)論使用上述任何哪一種業(yè)界標準軟件IDE中,都可以提供MSS配置器。
配置外設的驅動(dòng)器庫、系統初始化和啟動(dòng)代碼都是自動(dòng)產(chǎn)生的,這就為設計人員節省了大量的時(shí)間,不必花費太多精力用于這部分設計,從而將更多時(shí)間用于應用開(kāi)發(fā)。
MSS配置器GUI看起來(lái)就像器件架構模塊示意圖。由于這類(lèi)工具對嵌入式和FPGA兩方設計人員來(lái)說(shuō)都比較新穎,它的圖形直觀(guān)性界面有助于所有設計人員順利地學(xué)習,同時(shí)滿(mǎn)足每個(gè)人的要求。
FPGA設計人員可以自行配置微控制器子系統,也可以引入一個(gè)由嵌入式設計人員創(chuàng )建的微控制器子系統。這時(shí),只需采用一種簡(jiǎn)單的文件格式在設計人員之間傳遞MSS配置,不必傳遞整個(gè)設計項目。實(shí)際上,FPGA設計人員需要了解MSS配置的唯一理由是外設與FPGA架構的連接。FPGA設計人員因此能夠增加像SmartDesign IP模塊這樣的額外設計組件,或者是獲得用于與處理器的設計相獨立的RTL,并繼續進(jìn)行包含了全面廣泛的時(shí)序和功率分析的傳統FPGA設計流程。
對于模擬設計,不論用戶(hù)是真正的模擬設計人員,還是嘗試模擬設計的其他類(lèi)型設計人員,直觀(guān)的圖形化配置方案似乎效果最好。這些已獲驗證的設計技術(shù)支持現有混合信號Fusion FPGA,并包含電壓、溫度和電流監控功能,以及采樣排序和后處理標記生成的控制等功能。
溫度監控器配置對話(huà)允許用戶(hù)設置采集時(shí)間,運用過(guò)濾技術(shù)及輸入標記要求以生成輸出,可用于處理器的中斷或FPGA架構的輸出。
分布式設計環(huán)境的版本控制
若有兩個(gè)或更多設計人員從事一項設計,那么建立清晰的設計修改協(xié)議就顯得十分重要,而且其中一個(gè)設計人員應該成為MSS配置的主要管理者。在密切合作的工作關(guān)系中,任何一個(gè)設計人員都可能修改或更新另一個(gè)人的工作,這時(shí)跟蹤修改是非常重要的。
如果嵌入式設計人員創(chuàng )建MSS配置,則該配置被輸出并傳送給FPGA設計人員。FGPA設計人員可以輸入且采用這個(gè)新版本,就如同一個(gè)輸入到設計圖中的標準IP模塊一樣。如果有帶MSS的現成設計,則設計人員可以簡(jiǎn)單使用內核替代功能,然后使用SmartDesign Canvas檢測是否有連接改變。
如果嵌入式設計人員是主要管理者,雖然FPGA設計人員在測試時(shí)可以對配置做較少的改變(例如,為了評測任何時(shí)序問(wèn)題,FPGA設計人員可能需要改變MSS饋入FPGA架構的時(shí)鐘頻率),但嵌入式設計人員必須對這些變化進(jìn)行編譯以保持雙方同步。
由FPGA設計人員啟動(dòng)設計流程并定義MSS所需的外設之后,下一步就是輸出配置并傳送給嵌入式設計人員,再由后者輸入這個(gè)配置,并生成用于MSS以及FPGA設計人員增加的任何軟外設的固件。若在設計流程初期創(chuàng )建有大量軟外設,就極可能是這種情況。
至于決定由哪一方作為配置的主要管理者,則因具體設計而異。處理模擬設計的人最有可能成為主要管理者。模擬計算引擎ACE(Analog Compute Engine)配置也包括在MSS模塊中。由于大多數設計人員都不太熟悉模擬設計,最初也許會(huì )經(jīng)歷多次設計反復,因此讓模擬設計人員成為MSS配置的主要管理者是很有說(shuō)服力的。
嵌入式混合信號FPGA設計流程總結
嵌入式混合信號FPGA設計流程軟件開(kāi)發(fā)團隊的目標是建立一個(gè)具有以下特性的設計環(huán)境:
(1)使現有FPGA及嵌入式設計人員的學(xué)習曲線(xiàn)最小化;
(2)能夠幫助嵌入式設計人員單獨評測器件的處理器方面的性能;
(3)能夠幫助FPGA設計人員單獨評測器件的FPGA方面的性能;
(4)能夠讓嵌入式和FPGA設計人員并行進(jìn)行同一個(gè)器件的工作,而不存在進(jìn)度安排的風(fēng)險;
(5)引入簡(jiǎn)單的模擬接口,向所有用戶(hù)開(kāi)放模擬設計。
在經(jīng)濟困難時(shí)期,產(chǎn)品需要快速上市,而工作穩定性十分有限,市場(chǎng)競爭日益激烈。因此,任何一家硅器件供應商或軟件開(kāi)發(fā)商的任務(wù)都應該是建立一個(gè)有助于提高生產(chǎn)力,而不是挑戰設計人員能力的設計環(huán)境,同時(shí)為設計人員的產(chǎn)品提供顯著(zhù)的市場(chǎng)競爭優(yōu)勢。
評論