<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 將處理器集成入FPGA的整合之道

將處理器集成入FPGA的整合之道

作者:■ Altium公司 Rob Irwin 時(shí)間:2005-05-05 來(lái)源:eaw 收藏

引言
現有的設計策略只是將看作一個(gè)單個(gè)元件,且需要依靠HDL輸入(HDL capture)和仿真的手段來(lái)進(jìn)行元件設計和驗證。而在將處理器集成入,試圖在可編程部件中成就一個(gè)完全內嵌的系統時(shí),其所呈現出的復雜性是現有方法無(wú)法有效解決的。
若想對嵌入到FPGA中基于處理器的整個(gè)數字系統進(jìn)行輸入、運行及調試,工程技術(shù)人員需要有一個(gè)集合各種工程軟硬件設計工具,在一個(gè)集成化的FPGA執行環(huán)境中協(xié)調工作的理想設計平臺。
本文概述了開(kāi)發(fā)這種系統所必須面對的各種設計挑戰,并講解了Altium公司的最新電子設計環(huán)境Nexar如何為FPGA設計提供一種全新的方法。這種方法不僅可將處理器有效地集成入FPGA之中,而且成為一種挖掘現有以及未來(lái)大容量、低成本FPGA部件應用潛力的系統級FPGA設計策略。

復雜度提升所帶來(lái)的問(wèn)題
一直以來(lái),像FPGA這樣的大容量可編程部件都是用于組成邏輯塊的,實(shí)質(zhì)上FPGA就是用于研制單一用途的元件,然后與其他現成的元件組合在一起構建一個(gè)完整的嵌入式系統。這種工作對于一個(gè)含有數萬(wàn)設計門(mén)柵的FPGA來(lái)講已經(jīng)足夠了。然而依照摩爾定律,FPGA在成本不斷降低的同時(shí)其容量也有了大幅的提升,現今的FPGA堪稱(chēng)是一個(gè)內含百萬(wàn)級門(mén)柵,集成有嵌入式處理器和外設元件,具有可執行整個(gè)數字系統工作能力的設計平臺,其成本卻已不再是上百美元,而是下降到了僅僅數十美元的水平。 現在市場(chǎng)上已有很多此種類(lèi)型的FPGA,但是為什么工程技術(shù)人員沒(méi)有急于將這些部件應用于設計當中呢?原因很簡(jiǎn)單—沒(méi)有合適的設計工具和設計策略。
絕大多數傳統的FPGA設計方法是,采用某種形式的硬件描述語(yǔ)言(HDL)在寄存器狀態(tài)下將整個(gè)FPGA作為一個(gè)單個(gè)元件來(lái)進(jìn)行設計。而且,傳統的方法依賴(lài)大量的HDL仿真來(lái)達到對設計的工作狀況進(jìn)行驗證的目的。 在研制FPGA中的組合邏輯塊時(shí),采用這種設計方法非常有用,但由于必須進(jìn)行寄存器尋址,隨著(zhù)FPGA容量的增加以及所用邏輯器件的進(jìn)一步增多,寄存器級的復雜性使得設計中采用HDL/仿真方法就變得非常煩瑣。只要看一下含有處理器以及高階外設功能的典型嵌入式應用產(chǎn)品就會(huì )發(fā)現,其電路結構中所特有的復雜性使得傳統意義上的FPGA 設計方式不再可行。
雖然這種復雜度可以在一種程度上通過(guò)解決分級構造中的問(wèn)題,搜尋、組合已經(jīng)過(guò)預先測試的IP塊,將基于HDL源代碼的大模塊連在一起以增加層的復雜性來(lái)克服,但由于基于HDL組合邏輯的較大模塊需要許多行代碼,并要知道什么是能集成在設計中的有效源代碼,工程技術(shù)人員需要對代碼的工作流程有一定的了解。
隨著(zhù)設計復雜度的提高,采用傳統的HDL/仿真方法來(lái)進(jìn)行FPGA產(chǎn)品開(kāi)發(fā)時(shí),其復雜性所導致的一系列問(wèn)題就顯現了出來(lái)。將FPGA當做一種孤立元件進(jìn)行開(kāi)發(fā)時(shí),行之有效的實(shí)施和驗證策略在應對系統級集成時(shí)受到了嚴峻的挑戰。要想在FPGA平臺上進(jìn)行高效優(yōu)質(zhì)的系統級設計,就必須有一種全新的思路和方法。

借鑒線(xiàn)路板設計的經(jīng)驗
線(xiàn)路板級系統的設計為我們提供了有用的經(jīng)驗和設計靈感。通常情況下,為百萬(wàn)級基本門(mén)柵的復合系統是無(wú)需耗用大量仿真周期的。這是因為復雜的系統已溶入到高階元件設計之中了,而元件可以很簡(jiǎn)單地在一個(gè)圖形環(huán)境中連接在一起以便構建起整套系統。門(mén)柵和寄存器級的復雜性被元器件有效地掩蓋和回避了,這使得工程技術(shù)人員無(wú)需具備任何有關(guān)元件基本結構方面的知識,就可以相對快速且容易地進(jìn)行整個(gè)系統的開(kāi)發(fā)工作。
工程技術(shù)人員在從事線(xiàn)路板級的設計時(shí),需要有傳統HDL設計流程所要求的更高抽象概念。他們可將元件放置入原理圖中,并進(jìn)行布線(xiàn)以設定整個(gè)系統的連接性。電路的功能性單元  — 元件 — 被看做是“黑盒子”。
如果將這種方法引入到FPGA的內部設計之中,將FPGA看做是一個(gè)通過(guò)元件互連來(lái)構建系統的平臺,而不是簡(jiǎn)單地看做是一個(gè)獨立的復合元件,會(huì )是一種更大規模的設計流程。
Altium Limited公司新近推出的設計系統(Nexar)正是應用了這種方式。 工程技術(shù)人員可將現有的線(xiàn)路板級嵌入式系統設計知識直接應用于可編程部件的開(kāi)發(fā)之中。Nexar的獨特之處在于它并非試圖將傳統的HDL流程按比例提升到系統級的水平,而是將HDL與基于原理圖的線(xiàn)路板設計方法相結合,集二者之優(yōu)勢以實(shí)現系統級的設計開(kāi)發(fā)。

設計輸入所要面對的挑戰
一直以來(lái),FPGA都被當做是用在較大系統中的單一用途元件,是與其他采用分立、現成元件的主要功能塊如處理器一起工作的。這種單一用途的元件可以用于集合大量的組合邏輯或者膠合邏輯,也可以充當一種特殊的元件,如網(wǎng)絡(luò )攝像機用圖像編碼器,它具備復雜的大規模數據轉換功能。
用途單一的元件設計通常采用硬件描述語(yǔ)言(HDL)進(jìn)行設計輸入,這會(huì )非常有效,如VHDL或Verilog,但采用原理圖編輯器等圖形工具則差強人意。
然而,在將整個(gè)電路中的功能塊連接在一起時(shí),HDL的效能低于圖形工具。要想高效優(yōu)質(zhì)地完成FPGA上嵌入式系統的設計,一個(gè)必要的條件就是能在一個(gè)設計中將HDL和原理圖方法結合起來(lái)使用。
Nexar采用了一種叫做“混合模式”的設計輸入(design capture)方法來(lái)應對這種挑戰,它支持在一項設計中應用原理圖和HDL兩種設計方式(采用VHDL語(yǔ)言)。這樣工程技術(shù)人員可根據工作的特定需要來(lái)選用最適當的方法。在構建整個(gè)系統設計并需要對處理器和外部部件進(jìn)行連接時(shí),可采用原理圖輸入(schematic capture)的方式。當需要開(kāi)發(fā)一種用做系統元件的大容量邏輯塊時(shí),則可采用VHDL描述的方法。這種混合模式的輸入方法為在FPGA平臺上同時(shí)支持系統和元件級設計提供了一種理想環(huán)境。

需要使用元件的原理圖
如果擁有一個(gè)支持原理圖/HDL混合設計輸入方式的設計環(huán)境,但沒(méi)有能夠置放于原理圖中的合適現成的FPGA元件,也就沒(méi)有多大的意義了。作為一個(gè)“FPGA-可即用”元件,其在原理圖上的表示符號必須有一個(gè)與之相對應的器件型號或內核,這個(gè)型號或內核要能在目標FPGA中例證說(shuō)明。在FPGA和ASIC設計中,這些可即用的硅晶元件通常被稱(chēng)為IP內核(虛擬元件)。
要設計一個(gè)元件分離的嵌入式系統,工程技術(shù)人員采用分銷(xiāo)商可隨時(shí)供貨的現成元件就可以了。 但要設計并運行一個(gè)FPGA平臺上開(kāi)發(fā)的嵌入式系統,搜尋具有相應功能的元件會(huì )是很困難的。IP內核是可集成入整個(gè)系統設計的HDL源文件。然而要找到、購買(mǎi)并獲得這類(lèi)IP的專(zhuān)利使用權是非常耗費時(shí)間且困難的事情。而且,以HDL形式提供的IP必須作為整體設計的一部分進(jìn)行合成并加以驗證。由于要花時(shí)間將IP寫(xiě)入系統HDL描述中去,因而會(huì )進(jìn)一步拖長(cháng)開(kāi)發(fā)的時(shí)間。

立即可用的 IP元件庫
若干個(gè)IP元件庫作為整個(gè)系統的一個(gè)組成部分集合在Nexar中,以作為原理圖輸入過(guò)程中所需的部件被隨時(shí)調用。這些元件并非像其他許多基于方框圖的FPGA設計工具所提供的,只是一些簡(jiǎn)單的低階布爾門(mén)柵。另外還有很多不同的復雜處理器內核和高階外部器件,如:CAN控制器、VGA 控制器、計時(shí)器以及存儲元件等。這些元件庫再配合一套全面的原理圖輸入環(huán)境,可為在FPGA上進(jìn)行基于處理器的系統設計提供很大的便利。
所提供的庫元件并非源級HDL,而更多的是好多種不同目標FPGA架構進(jìn)行預先合成和驗證的。進(jìn)行系統合成時(shí),合適指標的低階元件排線(xiàn)表列被當做黑盒子通過(guò)合成引擎,并同系統連接信息一起傳給FPGA廠(chǎng)商的布局及布線(xiàn)工具以便進(jìn)行FPGA內部整合。由于只需要對元件塊和用HDL格式生成的各種膠合邏輯功能的連接狀況進(jìn)行安排,系統級的合成工作可以很快地開(kāi)始進(jìn)行。而且,由于設計的主要部分 — 內含IP元件已經(jīng)通過(guò)了驗證,因而沒(méi)有必要再進(jìn)行大量的HDL級仿真來(lái)對電路功能的運作狀況進(jìn)行驗證。
將各種處理器內核和外設部件封裝入預先合成的模塊之中,不僅能夠降低系統集成工作的復雜程度,而且還提供了一種能直觀(guān)反映與工程技術(shù)人員目前所采用的基于元件的設計方式相類(lèi)似的設計流程。這種IP提供方式還使系統元件可適用于不同的FPGA部件架構,這讓Nexar系統設計可在各種零部件和任何一家FPGA廠(chǎng)商的產(chǎn)品之間輕松實(shí)現轉移。

嵌入式軟件開(kāi)發(fā)
所有以處理器為主體的電子設計都需要配備軟件來(lái)實(shí)現其相應的功能。而要開(kāi)發(fā)這類(lèi)軟件,工程技術(shù)人員必須有一種可與處理器相匹配的編譯器。
采用嵌入式代碼的產(chǎn)品一般都需要在實(shí)時(shí)環(huán)境中工作,且硬件資源通常都很有限 (包括存儲器),在這種情況下,嵌入式開(kāi)發(fā)工具就必須能夠提供高質(zhì)量、小體積的代碼,且有必要針對處理器進(jìn)行優(yōu)化配置,并能支持交互式的調試工作。
為滿(mǎn)足嵌入式軟件設計工具的這些基本需要,Nexar集成了多個(gè)嵌入式編譯器和調試器(基于A(yíng)ltium公司的TASKING嵌入式軟件開(kāi)發(fā)技術(shù))以用于所供IP元件處理器內核的開(kāi)發(fā)。不僅如此,Nexar還包含了一套全面集成硬件開(kāi)發(fā)環(huán)境的完整軟件開(kāi)發(fā)系統,以便用于構建整個(gè)系統的軟硬件能夠同步開(kāi)發(fā)。
運用Nexus嵌入式處理器調試接口標準(IEEE-ISTO 5001-1999),可實(shí)現與嵌入到FPGA中的處理器進(jìn)行通信。由Nexar提供的所有處理器內核都針對這一標準而專(zhuān)門(mén)設計,并且可提供廣泛的片上調試功能。這為在系統中運作的處理器內核實(shí)現全面的源級調試提供了可能。Nexar提供的各種編譯器都以Altium公司最尖端的Viper編譯器的框架為基礎構建,并針對預先備好的內核進(jìn)行了特別的優(yōu)化配置,以確??商峁└哔|(zhì)量的代碼。

設計驗證
工程技術(shù)人員在設計嵌入式系統時(shí),采用的都是一些分立的、基本沒(méi)有進(jìn)行過(guò)系統仿真的現成元件。他們寧愿通過(guò)構建一個(gè)試制的原型來(lái)調試系統,并交替使用嵌入式軟件調試工具和測試儀器來(lái)進(jìn)行測試,比如邏輯分析儀。然而一旦嵌入式系統元件集成入FPGA之中,要想用實(shí)際的儀器探查和監測電路就不再可能了。
對FPGA設計進(jìn)行原型試制已不是什么新概念,目前市面上已有很多種這樣的FPGA開(kāi)發(fā)線(xiàn)路板件。但是要想借助一個(gè)較大型設計的試制原型,在FPGA開(kāi)發(fā)線(xiàn)路板上對電路的運行狀況進(jìn)行測試是根本不可能的。 傳統的FPGA開(kāi)發(fā)板件只是用于將FPGA上用途單一的元器件看做是獨立于系統而進(jìn)行設計和測試的, 而并非用做對嵌入式系統進(jìn)行整體測試的。
要想獲得一個(gè)能夠對整個(gè)基于系統的微處理器進(jìn)行設計、調試的FPGA開(kāi)發(fā)系統,工程技術(shù)人員需要一個(gè)真正的執行平臺,而不僅僅是一個(gè)開(kāi)發(fā)線(xiàn)路板。Nexar中最重要的組成部分就是一個(gè)名為NanoBoard的硅晶元件電路實(shí)驗板, 它可讓工程技術(shù)人員在產(chǎn)品開(kāi)發(fā)期間以交互的方式進(jìn)行真正的物理設計,并為實(shí)現交互式的系統級調試和驗證提供了便利。 由于與Nexar軟件環(huán)境保持了一致性,工程技術(shù)人員能夠在NanoBoard開(kāi)發(fā)與試驗環(huán)境下,在目標FPGA中集成并運行基于處理器的嵌入式系統, 實(shí)現硬件和嵌入式代碼的交互式編譯、下載和調試。
這種“burn & learn”的方法可提高設計的迭代周期,并加快設計驗證的步伐,同時(shí)由于這是軟件實(shí)際應用于硬件中執行工作的,工程技術(shù)人員能夠非??隙ǖ刈C實(shí)設計確實(shí)可以工作,而不是應用仿真的方法看看設計是否應該可以工作。
要想將這種“burn & learn”的方法付諸于工作當中,工程技術(shù)人員需要能夠知道到底在FPGA中會(huì )出什么問(wèn)題。Nexar內含一組可在原理圖狀態(tài)下放置入設計的“虛擬儀器”,這使得可以掌握一切。一旦設計在NanoBoard上進(jìn)行,工程技術(shù)人員就可以通過(guò)Nexar環(huán)境與這些虛擬儀器進(jìn)行通信,以達到測試和監測電路性能的目的。
這些虛擬儀器不僅能夠模擬并提供與其實(shí)現設備一樣的功能,而且可以用交互的方法對在FPGA中工作的電路進(jìn)行測試。采用JTAG邊界掃描技術(shù)的這種儀器可提供一個(gè)FPGA內部實(shí)時(shí)視圖, 在一步步進(jìn)行電路運行時(shí),可對信號狀態(tài)進(jìn)行觀(guān)測。與儀器的通信和設計的調試工作都可采用Nexus調試協(xié)議來(lái)進(jìn)行。
Nexar還可以借助邊界掃描提供一個(gè)反映電路運作期間,FPGA各接腳的信號狀態(tài)的瞬態(tài)圖。通過(guò)邊界掃描獲得的數值又可映射到原來(lái)的原理圖中,以便顯示調試過(guò)程中任一階段各個(gè)信號線(xiàn)的狀況或總線(xiàn)的數值。
虛擬儀器和部件邊界掃描的配合使用不僅能夠獲得電路運行的各項綜合性信息,而且還為在系統級狀態(tài)下實(shí)現軟硬件的交互式調試提供了方便。

一套完整的 LiveDesign平臺
每一位設計過(guò)基于處理器的數字系統的工程技術(shù)人員,都對整個(gè)系統調試的困難性有非常深刻的印象。工程技術(shù)人員首先必須盡快做好硬件的首次修訂,以便為嵌入式軟件開(kāi)發(fā)者留出足夠的開(kāi)發(fā)空間。一旦到了這個(gè)階段,設計工作就變得不好把握了,需要捕捉硬件設計的各種問(wèn)題,采用代價(jià)更為昂貴的PCB板修訂來(lái)解決,亦或是試圖通過(guò)軟件來(lái)回避。
Nexar不但具備有在FPGA上進(jìn)行全部嵌入式系統設計所需的各種功能,并且還將這些功能和工具以一種方便工程技術(shù)人員應用的方式集合在一起,讓他們將精力集中在高階設計流程的開(kāi)發(fā)改進(jìn)上,而不是把時(shí)間浪費在低級別的瑣碎事務(wù)上,如:在不同工具間調用設計數據、在不同設計環(huán)境中工作、應對如何實(shí)現設計工具與正開(kāi)發(fā)的硬件對接等。
一旦軟硬件設計進(jìn)入到首次原型試制的階段,設計的工作便可轉入NanoBoard上來(lái)進(jìn)行了,而不必制造出一個(gè)真實(shí)的物理原型來(lái)。工程技術(shù)人員可在NanoBoard中獲得設計所需要的各種虛擬儀器,探查FPGA接腳的狀態(tài),調試、重新編譯并重新下載更新的代碼-所有的工作都可通過(guò)一個(gè)Nexar應用接口來(lái)完成。由于整個(gè)設計迭代的周期只需幾分鐘的時(shí)間,因而可以快速地探測出軟硬件的不同執行情況。
所有的設計工作都可通過(guò)Nexar的一個(gè)接口來(lái)控制。工程技術(shù)人員可借助這個(gè)接口進(jìn)行軟硬件設計的編譯,針對FPGA布局和布線(xiàn)的需要進(jìn)行合成,通過(guò)FPGA廠(chǎng)商工具實(shí)施遠程布局和布線(xiàn)工藝,而且還可將設計下載至NanoBoard之中, 所有工作都可在短短的幾分鐘之內完成。
Nexar環(huán)境中的軟硬件設計和調試流程如圖1所示,其交互式特性讓工程技術(shù)人員獲得了一種從事設計的全新方法-工程技術(shù)人員可在整個(gè)設計周期中與在實(shí)際硬件中運行的真正軟件實(shí)現交互。Altium將這種方式稱(chēng)之為L(cháng)iveDesign,這便是Nexar以及其所構建的平臺所具有的優(yōu)勢所在。

結語(yǔ)
Nexar引入了一種新型的元件級、立即可用的IP交付使用機制,以方便將系統級設計中基于原理圖的設計輸入方式應用于FPGA平臺之中。其內含的NanoBoard-可重新配置的系統工具平臺-可讓工程設計人員以一種交互的方式對整個(gè)工藝進(jìn)行設計和驗證, 從而消除了由于采用耗時(shí)費力且難度極高的系統級仿真所帶來(lái)的種種設計障礙。
將NanoBoard與虛擬儀器和邊界掃描配合使用,便成為了一套完備的LiveDesign開(kāi)發(fā)環(huán)境,它不但能夠降低在FPGA中實(shí)現整套嵌入式系統運作的復雜性,而且還為應用最新一代大容量、低成本FPGA部件實(shí)現整套系統的運作提供了無(wú)限的潛能?!?/P>

合成孔徑雷達相關(guān)文章:合成孔徑雷達原理


關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>