《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于FPGA的嵌入式系統(tǒng)XBD文件設(shè)計
基于FPGA的嵌入式系統(tǒng)XBD文件設(shè)計
電子發(fā)燒友
摘要: 隨著可編程邏輯器件的不斷進(jìn)步和發(fā)展,,F(xiàn)PGA在嵌入式系統(tǒng)中發(fā)揮著越來越重要的作用,,已經(jīng)開始被廣泛應(yīng)用于通信,、航天,、醫(yī)療,、工控等領(lǐng)域,。Xilinx公司作為全球最大的可編程邏輯器件生產(chǎn)廠商,,為嵌入式系統(tǒng)設(shè)計人員提供了比較全面的解決方案。Xilinx的嵌入式系統(tǒng)開發(fā)環(huán)境EDK,,提供了一種通用的完全集成的硬件和軟件開發(fā)環(huán)境,,使設(shè)計人員可以利用單個開發(fā)環(huán)境快速配置針對PowerPC硬處理器或Microblaze軟處理器內(nèi)核的平臺。在EDK開發(fā)環(huán)境下,,利用用戶向?qū)Э梢詼?zhǔn)確快速地創(chuàng)建一個新的嵌入式系統(tǒng),,而在這一過程中,XBD文件決定了系統(tǒng)的硬件平臺描述文件MHS以及約束文件UCF的正確與否,,在構(gòu)建系統(tǒng)過程中起著至關(guān)重要的作用,。1基于FPGA的嵌入式系統(tǒng)開發(fā)利用Xilinx公司的嵌入式系統(tǒng)開發(fā)工具EDK就可以完成整個嵌入式系統(tǒng)的硬件和軟件開發(fā),EDK由XPS(XilinxPlatformStudio)和SDK(SoftwareDevelopmentKit)組成,。其中XPS是主設(shè)計程序平臺,,可以實現(xiàn)嵌入式系統(tǒng)開發(fā)的所有步驟,并且可以在其中調(diào)用SDK,。SDK是軟件開發(fā)工具,,支持C和C++,主要完成軟件設(shè)計。在XPS開發(fā)環(huán)境下,,完
關(guān)鍵詞: FPGA 嵌入式系統(tǒng)
Abstract:
Key words :

  隨著可編程邏輯器件的不斷進(jìn)步和發(fā)展,,FPGA嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)中發(fā)揮著越來越重要的作用,已經(jīng)開始被廣泛應(yīng)用于通信,、航天,、醫(yī)療、工控等領(lǐng)域,。Xilinx公司作為全球最大的可編程邏輯器件生產(chǎn)廠商,,為嵌入式系統(tǒng)設(shè)計人員提供了比較全面的解決方案。Xilinx的嵌入式系統(tǒng)開發(fā)環(huán)境EDK,,提供了一種通用的完全集成的硬件和軟件開發(fā)環(huán)境,使設(shè)計人員可以利用單個開發(fā)環(huán)境快速配置針對PowerPC硬處理器或Microblaze軟處理器內(nèi)核的平臺,。在EDK開發(fā)環(huán)境下,,利用用戶向?qū)Э梢詼?zhǔn)確快速地創(chuàng)建一個新的嵌入式系統(tǒng),而在這一過程中,,XBD文件決定了系統(tǒng)的硬件平臺描述文件MHS以及約束文件UCF的正確與否,,在構(gòu)建系統(tǒng)過程中起著至關(guān)重要的作用。

  1 基于FPGA" title="FPGA">FPGA的嵌入式系統(tǒng)開發(fā)

  利用Xilinx公司的嵌入式系統(tǒng)開發(fā)工具EDK就可以完成整個嵌入式系統(tǒng)的硬件和軟件開發(fā),,EDK由XPS(Xilinx Platform Studio)和SDK(Software DevelopmentKit)組成,。其中XPS是主設(shè)計程序平臺,可以實現(xiàn)嵌入式系統(tǒng)開發(fā)的所有步驟,,并且可以在其中調(diào)用SDK,。SDK是軟件開發(fā)工具,支持C和C++,,主要完成軟件設(shè)計,。在XPS開發(fā)環(huán)境下,完整的開發(fā)流程如圖1所示,。

  

  MHS和MSS文件都是根據(jù)系統(tǒng)要求在EDK環(huán)境下生成的,。MHS文件包含了對整個嵌入式系統(tǒng)的定義,包括處理器,、總線,、外圍設(shè)備、地址空間等,,用于整個硬件平臺的綜合,、實現(xiàn);MSS文件包含了操作系統(tǒng)、設(shè)備驅(qū)動等信息,,將其輸入到庫生成器(Libgen),,產(chǎn)生應(yīng)用程序中需要的驅(qū)動程序及Xilinx的調(diào)用庫。欲了解更多信息請登錄電子發(fā)燒友網(wǎng)(http://www.elecfans.com)

  嵌入式開發(fā)軟件EDK為設(shè)計人員提供了自動化的設(shè)計向?qū)?mdash;—BSB(Base System Builder),,可以指引工程師快速完成整個設(shè)計過程,。在利用BSB創(chuàng)建嵌入式系統(tǒng)過程中,,利用嵌入式硬件平臺的XBD文件對板級各個功能電路的描述,按步驟選擇需要的電路模塊添加到MHS文件中,,從而減少出現(xiàn)錯誤的可能,,降低學(xué)習(xí)難度。因此,,一個新的嵌入式FPGA硬件平臺確定以后,,在EDK中針對開發(fā)板進(jìn)行嵌入式系統(tǒng)開發(fā),可以利用相應(yīng)的XBD文件,,快速建立一個基于FPGA的嵌入式系統(tǒng),。

  2 板級描述文件XBD

  XBD(Xilinx Board Description)文件定義了電路板的功能模塊以及各個模塊與FPGA芯片的接口情況,利用BSB可以將XBD文件中包含的功能模塊加入到要建立的嵌入式系統(tǒng)中,。

  在EDK的安裝目錄下,,Xilinx公司為設(shè)計者提供了一些開發(fā)板的XBD文件。但是,,一個新的嵌入式硬件平臺建立后,,想要在EDK軟件中利用BSB向?qū)ёx取硬件電路的信息,從而高效無誤地產(chǎn)生FPGA嵌入式系統(tǒng),,需要針對電路板上的各個單元電路設(shè)計新的XBD文件來描述硬件平臺的信息,。通常,一個XBD文件包括如下信息:

  ◆電路板所支持的功能模塊的FPGA接口;

  ◆每個模塊的屬性,、參數(shù),、端口定義;

  ◆不同端口或模塊間的連接信息;

  ◆每個FPGA引腳的UCF約束信息。

  由于XBD文件是對硬件各功能模塊的描述,,因此在設(shè)計XBD過程中也是以模塊的形式來表示電路板信息的,,而且各個功能塊的描述具備相似的結(jié)構(gòu),使用相同的賦值命令進(jìn)行具體參數(shù)定義,。

  2.1,,模塊的定義

  一個完整的模塊定義如下:

  BEGIN

  :

  END

  關(guān)鍵字BEGIN表示一個新的模塊開始,后面是要定義模塊的類型,,中間部分是與描述IP核行為的MPD文件相對應(yīng)的各種參數(shù),。當(dāng)前,XBD文件能夠識別3種類型的模塊定義:

 ?、買O_INTERFACE,。IO_INTERFACE指定了一個電路板上的物理模塊(不包括FPGA本身),每一個IO—INTERFACE在板上應(yīng)該有一個在FPGA中使用的軟IP核與之相對應(yīng),。

 ?、贗O_ADAPTER。IO_ADAPTER指定了連接IO_INTERFACE引腳與相應(yīng)軟IP端口的軟膠合邏輯。

 ?、跢PGA,。FPGA模塊代表FPGA本身。

  2.2 賦值命令

  每個BEGIN—END模塊包括多個賦值命令,。賦值命令至少包括一個name—value對,,還可以加入多個name—value子對。

  賦值命令包括:

 ?、貯TTRIBIJTE,。ATTRIBUTE命令是對屬性命名的關(guān)鍵字。對于經(jīng)過ATTRIBUTE賦值的對象,,EDK工具會執(zhí)行某種操作或以特定的方式使用該對象,。ATTRIBUTE賦值命令可以在BEGIN—END模塊內(nèi)部或者外部使用。

 ?、赑ARAMETER,。PARAMETER命令將IP核中的PARAMETER參數(shù)同XBD文件中的IO_INTERE、ACE聯(lián)系在一起,,且PARAMETER命令只能在IO_INTERFACE模塊內(nèi)部使用。

 ?、跴ORT,。PORT命令用來指定電路板上各個模塊(包括FPGA)的連通性,只能在IO_INTERFACE和IO_ADAPTER模塊內(nèi)使用,。

  PARAMETER和PORT命令后能夠跟隨子屬性,,每一個子屬性也是name—value對。子屬性必須同PA—RAMETER和PORT命令在同一行,,并且用逗號隔開,。

  3 XBD文件的設(shè)計實現(xiàn)

  在基于FPGA的嵌入式系統(tǒng)中,無論是硬核Power—PC還是軟核Microblaze處理器,,都是通過IP核的方式與周圍設(shè)備進(jìn)行操作的,,因此,在XBD中定義電路模塊時要選擇與實際電路相對應(yīng)的IP核,。在描述IP核行為的MPD文件中,,定義了IP核的各種參數(shù),I0_INTERFACE的子屬性IOTYPE決定了該IP核是否能夠與電路板上的特定模塊進(jìn)行連接,,通過查看MPD文件的信息就可以知道該IP的功能及其各種參數(shù),。例如,對于電路板上的4個LED顯示單元,,為了能夠利用BSB將其加入到嵌入式系統(tǒng)中,,需要在XBD文件中定義一個能夠?qū)?個LED進(jìn)行操作的模塊。在基于FPGA的嵌入式系統(tǒng)中,處理器通過通用I/O接口GPIO對LED進(jìn)行操作,,故LED在XBD中要定義一個IOTYPE為GPIO的I0_INTER—FACE模塊,,表示可以通過這個模塊與實際電路板上的I/O進(jìn)行通信。在GPIO的MPD文件描述中,,對于I0_IN—TERFACE進(jìn)行了如下定義:

  IO_INTERFACE IO_IF=gpio_O,,IO_TYPE=XIL_GPIO_V1

  這個I0_INTERFACE表明IP核可以和GPIO進(jìn)行通信。

  與電路板上特定模塊通信的IP核選定后,,根據(jù)實際的電路特點,,在XBD文件中指定模塊的參數(shù)值,這些參數(shù)值都要與MPD文件中的參數(shù)一一對應(yīng),。需要指出的是,,EDK工具是利用XBD文件中的IO_IS子屬性將IP核的端口與電路板上模塊連接在一起的。在MPD文件中,,GPIO的部分描述摘錄如下:

  

 

  

 

  MPD文件定義了IOTYPE類型為XIL_GPIO_V1的I/O接口,,并且有C_GPIO_WIDTH和C_ALL_INPUTS兩個參數(shù)。這些參數(shù)跟隨的I0_INTERFACE是通過IO_IF子屬性來指定的,。同樣,,PORT GPIO_IO也是通過IO_IF子屬性來表示屬于gpio_0接口的。通過MPD文件對GPIO的描述,,可以通過將電路板上的4個LED電路模塊在XBD文件中定義一個IO_INTERFACE模塊來表示,。

  

 

  可以看到,MPD文件中I0TYPE類型為XIL_GPIO_V1的IO_INTERFACE同XBD文件中IOTYPE類型同樣為XIL_GPIO_V1的LEDs_4BIT模塊是匹配的,。因此,,子屬性IO_IS決定了IP核中的端口同XBD文件中哪個端口連接。最終,,利用自己設(shè)計的XBD文件中的LEDs_4BIT模塊,,通過BSB建立一個基于FPGA的嵌入式系統(tǒng)。實際電路板中4個LED在構(gòu)建的硬件配置文件MHS中的描述如下:

  

 

  類似于在XBD文件中設(shè)計一個與4個LED進(jìn)行通信的GPIO模塊,,利用同樣的方法,,在XBD中能夠完成電路板上其他模塊的設(shè)計,如UART,、按鍵,、存儲器等。在XBD文件中將電路板上所有的模塊信息設(shè)計完成之后,,為了使EDK軟件中的開發(fā)向?qū)SB能夠讀取到自己設(shè)計的XBD文件的信息,,要將XBD文件存放到EDK安裝目錄下的/boards中。應(yīng)該注意的是,,開發(fā)板的目錄名稱必須同板本身的名稱相同,,每個開發(fā)板目錄下應(yīng)該包括一個/data目錄,,XBD文件必須以_v2_2_O.xbd的形式命名,并且存放在這個/data目錄下,,例如…/boards/myboard_revl/data/myboard_rev1_v2_2_0.xbd,。這樣,在利用BSB創(chuàng)建嵌入式系統(tǒng)過程中,,XPS工具就會自動搜索/boards目錄,,并將該目錄下存在的描述開發(fā)板信息的XBD文件在創(chuàng)建向?qū)SB中顯示出來。

  4 總 結(jié)

  板級描述文件XBD在利用BSB快速構(gòu)建基于FPGA的嵌入式系統(tǒng)中起著非常重要的作用,,本文針對新的硬件平臺的XBD文件設(shè)計進(jìn)行了介紹,。在XBD文件設(shè)計時,針對電路板上的各個實際電路模塊,,通過對照相應(yīng)描述IP行為的MPD文件進(jìn)行各個電路模塊的設(shè)計與實現(xiàn),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。