SMC主機接口模塊可輕松將通過Synphony模型編譯器創(chuàng)建的設(shè)計集成在賽靈思嵌入式平臺中。
Synphony模型編譯器(SMC)是一款Synphony提供的、基于模型的工具,其可綜合在Simulink?及MATLAB?中創(chuàng)建的設(shè)計,從而可為ASIC和FPGA目標(biāo)應(yīng)用生成優(yōu)化的RTL。SMC包含一個綜合而全面的高級模型庫,可在Simulink環(huán)境中創(chuàng)建數(shù)學(xué)、信號處理及通信設(shè)計。該庫可在高級模型設(shè)計環(huán)境中簡化定浮點單速率或多速率算法的捕獲及功能調(diào)試。SMC RTL生成引擎可使用這些經(jīng)過驗證的模型自動創(chuàng)建RTL,為占位面積、性能、功耗以及吞吐量利弊權(quán)衡實現(xiàn)多架構(gòu)的硬件實施及快速探索。SMC的高級綜合引擎采用頂級設(shè)計以及MATLAB語言輸入,可生成針對所選硬件目標(biāo)而優(yōu)化的RTL。此外,SMC還可針對設(shè)計自動生成一個RTL測試平臺,并配以比特及周期高精度的C模型與SystemC封裝程序,可在SystemC仿真環(huán)境中實現(xiàn)對所生成硬件的驗證。
在許多應(yīng)用中,設(shè)計人員通過創(chuàng)建外設(shè)來執(zhí)行一些信號處理功能,并必須通過主機處理器(例如賽靈思 MicroBlaze?軟處理器內(nèi)核)來配置該外設(shè)。主機處理器通常采用標(biāo)準(zhǔn)總線接口(例如AMBA? AXI4或AXI4-Lite)連接外設(shè)。SMC庫包括主機接口模塊,其可來實現(xiàn)主機處理器的從接口。該主機接口模塊不僅支持AXI4-Lite、APB、通用接口以及Avalon-MM總線接口協(xié)議標(biāo)準(zhǔn),而且還可通過實現(xiàn)必要的內(nèi)存映射的寄存器來配置SMC設(shè)計,其中包括FIR濾波器系數(shù)、數(shù)控振蕩器(NCO)的頻率與相位設(shè)置以及各種長度FFT模塊的FFT長度。此外,該主機接口模塊在實現(xiàn)內(nèi)存映射的控制寄存器時可以采用任意需要的采樣頻率,可以與總線接口時鐘異步。您可在主機接口模塊的UI中指定總線接口及存儲器映射設(shè)置。設(shè)計人員可使用主機接口模塊將SMC設(shè)計連接至總線互聯(lián)或者總線主控。
現(xiàn)在我們來詳細(xì)了解一下,如何將通過SMC主機接口模塊設(shè)計的外設(shè)導(dǎo)入并集成到賽靈思嵌入式開發(fā)套件(EDK)項目中。此外,我們還將考證如何仿真通過標(biāo)準(zhǔn)總線互連連接的從MicroBlaze主機處理器到外設(shè)的AXI4-Lite總線的數(shù)據(jù)傳輸。該過程有四個主要步驟:
1. 使用IP、主機接口模塊以及SMC RTL生成引擎在Simulink中創(chuàng)建外設(shè),為設(shè)計生成優(yōu)化的RTL實施方案;
2. 將該外設(shè)導(dǎo)入賽靈思EDK工程,并將其與余下的設(shè)計集成;
3. 在SDK中開發(fā)軟件應(yīng)用;
4. 生成RTL并對其進(jìn)行仿真,以檢查軟硬件功能是否正確。
第1步:使用SMC庫創(chuàng)建外設(shè)
您要做的第一件事是使用SMC庫模塊創(chuàng)建外設(shè)的算法實施,并驗證功能性。然后根據(jù)兩個因素配置SMC主機接口模塊:算法部分的配置數(shù)據(jù)(其可定義存存儲器映射參數(shù))與系統(tǒng)的互聯(lián)總線協(xié)議(其可定義總線接口參數(shù))。然后將主機接口模塊與外設(shè)算法部分聯(lián)系起來。主機接口模塊的一些參數(shù)(例如總線互連、地址寬度與基址)將取決于您的目標(biāo)平臺。例如,我們選擇賽靈思Virtex?-7 FPGA作為平臺,并選擇AXI4-Lite作為總線接口。該平臺對每個外設(shè)的地址寬度、基址以及地址空間都有一定的限制。地址寬度必須為32位,而基址必須為4K字節(jié)的倍數(shù),最小可用地址空間為4K字節(jié)。圖1和圖2是總線接口協(xié)議及存儲器映射如何使用主機接口模塊進(jìn)行配置的視圖。
為了便于集成,雖然不是強制性的,但也強烈推薦SMC模型中的總線接口端口遵循賽靈思EDK要求的命名慣例。請為標(biāo)準(zhǔn)AXI4-Lite接口信號名稱添加“S_AXI_”。例如,AXI地址編寫通道(AWADDR)的地址信號應(yīng)該命名為S_AXI_AWADDR。如果信號不遵循AXI4-Lite的命名慣例,則在外設(shè)導(dǎo)入賽靈思EDK時就有可能將端口名稱映射到AXI4-Lite信號名稱上。另外,Simulink模型名稱中不要使用大寫字母,因為EDK不支持其名稱中帶有大寫字母的外設(shè)。
添加、配置和連接主機接口模塊后,就可使用SMC的RTL生成引擎為外設(shè)生成RTL。請在SMC UI中指定目標(biāo)設(shè)備、實施參數(shù)和優(yōu)化限制,以促使RTL生成引擎為目標(biāo)設(shè)備生成優(yōu)化的硬件。在SMC生成的頂級RTL中添加兩個虛擬參數(shù)(頂層RTL一般為VHDL),命名為:“C_BASEADDR”和“C_HIGHADDR”。根據(jù)IP要求將其默認(rèn)值分配給存儲器映射空間的基址和存儲器映射空間的最大地址。這一步必需確保EDK可識別外設(shè)的存儲器映射地址空間。SMC生成型設(shè)計的頂級Verilog RTL的實例如下所示,有兩個參數(shù)需要高亮顯示。
?
為了便于集成,雖然不是強制性的,但也強烈推薦SMC模型中的總線接口端口遵循賽靈思EDK要求的命名慣例。
第2步:將外設(shè)導(dǎo)入賽靈思EDK并對其進(jìn)行集成
下一步是將外設(shè)硬件導(dǎo)入EDK的賽靈思Platform Studio(XPS),并在系統(tǒng)中進(jìn)行必要的連接(總線接口端口以及功能端口)。在本示例中,我們已經(jīng)創(chuàng)建了具有MicroBlaze處理器的基本系統(tǒng)、用于存儲可執(zhí)行軟件的模塊RAM (BRAM)、本地存儲器總線(LMB)、AXI4-Lite互連以及MicroBlaze調(diào)試模塊。
在XPS GUI的硬件目錄下選擇“創(chuàng)建或?qū)胪庠O(shè)”選項。這將打開創(chuàng)建并導(dǎo)入外設(shè)向?qū)?。在該向?qū)е羞x擇“導(dǎo)入現(xiàn)有外設(shè)”選項。然后指定外設(shè)的存儲路徑、設(shè)計名稱以及文件類型(HDL)?,F(xiàn)在添加所有SMC生成的RTL文件。成功編譯RTL之后,您需要識別外設(shè)支持的總線接口,即AXI4-Lite從接口,如圖3所示。
在向?qū)У南乱粋€頁面中選擇外設(shè)的AXI4-Lite端口,并將其映射到標(biāo)準(zhǔn)AXI4-Lite端口上,以便EDK能夠連接總線接口。如果SMC模型中定義的總線接口端口名稱與標(biāo)準(zhǔn)總線端口名稱相匹配,則EDK將自動映射端口(參見圖4)。
如果端口名稱不匹配,則可能要覆蓋自動映射,如AXI4-Lite時鐘(Clk-Div3)和復(fù)位(GlobalReset)信號所示。
然后,按照第一步中插入RTL的C_BASEADDR和C_HIGHADDR參數(shù),指定寄存器空間基址和高位地址。請取消選擇存儲器空間選項,因為主機接口模塊具有可尋址的配置寄存器空間。但是在下個頁面中要保持RTL參數(shù)的默認(rèn)屬性不變,以確保與主機接口模塊中指定的參數(shù)一致。
下個頁面的標(biāo)題為“端口屬性”。在這里,您必須指定時鐘屬性,或者所有其它時鐘上的復(fù)位或設(shè)計中的復(fù)位。請點擊下個頁面中的“完成”,添加外設(shè)至XPS項目。SMC外設(shè)現(xiàn)已成功導(dǎo)入XPS。您可通過查看
/pcores文件夾(XPS使用外設(shè)名稱在此創(chuàng)建一個目錄)驗證是否成功。瀏覽該目錄,檢查RTL文件是否正確導(dǎo)入。
此外,XPS還將創(chuàng)建一個與HDL目錄并列的目錄,名為“數(shù)據(jù)”。該數(shù)據(jù)目錄包含微處理器外設(shè)描述(*.mpd)文件以及相關(guān)外設(shè)參數(shù)及其端口信息。查看SIGIS = CLK和SIGIS = RST參數(shù)是否已在時鐘及復(fù)位端口上定義。如果沒有定義,則需要編輯*.mpd文件并手動添加定義。圖5是添加了這些參數(shù)的文件實例。
現(xiàn)在,您將在XPS GUI的IP目錄部分看到您的外設(shè)位于項目本地PCores下的“用戶”子目錄中。請右鍵點擊外設(shè)名稱,并選擇“添加IP”。XPS核心配置窗口將打開。不要編輯本窗口中的任何參數(shù),保持默認(rèn)設(shè)置不變,以符合賽靈思EDK流程。如果EDK不接受指定的地址空間,則代表指定的存儲器映射與設(shè)計中的某些其它外設(shè)有沖突。您必須返回SMC,使用新的基址值重新生成RTL,并重復(fù)上述步驟導(dǎo)入SMC外設(shè)。當(dāng)正確的基址及高位地址值可用時,請點擊核心配置窗口中的“確定”按鈕。XPS將打開“舉例說明并連接IP”GUI。您既可命令工具自動鏈接外設(shè)與互聯(lián)總線(由可用處理器驅(qū)動),也可選擇手動連接外設(shè)。連接完成以后,就會看到圖6中顯示的接口連接。
?
在圖形設(shè)計視圖選項卡中的總線接口連接中再次檢查與AXI4-Lite相關(guān)的時鐘與復(fù)位是否已連接。如果沒有自動連接,請編輯中的微處理器硬件規(guī)范文件
.mhs。圖7是添加了時鐘與復(fù)位端口的*.mhs文件。
?
下一步,使用系統(tǒng)裝配視圖窗口的端口選項卡連接設(shè)計中的非AXI4-Lite端口。在系統(tǒng)裝配視圖的地址選項卡中,請確保外設(shè)地址空間可見,并確保地址范圍已鎖定。
現(xiàn)在,通過在XPS GUI的項目目錄中選擇“導(dǎo)出硬件設(shè)計至SDK”將硬件導(dǎo)出至賽靈思軟件開發(fā)套件。如果你只想運行RTL仿真,則不需要生成比特流。完成后,XPS會創(chuàng)建一個*.xml文件,用以描述導(dǎo)入SDK的硬件。該文件一般會在
/SDK/SDK_Export/hw文件夾中創(chuàng)建。
第3步:使用賽靈思SDK開發(fā)軟件驅(qū)動程序
集成的下個步驟是使用賽靈思SDK開發(fā)軟件驅(qū)動程序。請啟動SDK并創(chuàng)建一個硬件平臺規(guī)范項目,以源出*.xml文件。如果已經(jīng)在EDK中選擇了“導(dǎo)出并啟動”選項,則會自動創(chuàng)建該項目,而且IP模塊和地址映射信息已在SDK項目中提供。
在創(chuàng)建板級支持包(BSP)之前,您必須為您的外設(shè)創(chuàng)建驅(qū)動程序文件。典型的驅(qū)動報頭文件必須定義存儲器映射的寄存器偏移地址以及讀取和寫入這些寄存器的原型。
將驅(qū)動程序文件復(fù)制到SDK項目資源庫中,用以識別驅(qū)動程序并創(chuàng)建BSP項目。打開一個新的空白應(yīng)用項目創(chuàng)建軟件,然后從外設(shè)讀取和寫入數(shù)據(jù)。在該項目中,請指定按照該步驟第一個任務(wù)創(chuàng)建的硬件目標(biāo)平臺以及您剛剛創(chuàng)建的BSP。請在BSP設(shè)置窗口中查看設(shè)計的外設(shè)驅(qū)動程序內(nèi)核。
應(yīng)用項目包含一個main.cc文件,其中寫有用于應(yīng)用的軟件代碼。創(chuàng)建該文件后,SDK會自動編譯代碼,并創(chuàng)建一個*.elf文件,其可用于仿真RTL仿真環(huán)境中的軟件代碼。
應(yīng)用項目包含一個main.cc文件,其中寫有用于應(yīng)用的軟件代碼。例如可將各種值寫入存儲器映射前兩個寄存器(Status_register和Control_register)中的程序。創(chuàng)建該文件后,SDF會自動編譯代碼并創(chuàng)建一個*.elf文件,其可用于仿真RTL仿真環(huán)境中的軟件代碼。該*.elf文件隨后可用于驗證功能性,見第4步。
通過AXI4-Lite從接口使用主機接口模塊將SMC生成的外設(shè)與賽靈思嵌入式平臺集成非常簡單。
第4步:在XPS中生成RTL文件
最后一步是在XPS中生成RTL,并對其進(jìn)行仿真,以便驗證軟硬件功能是否正確無誤。在XPS GUI中的項目目錄下選擇“選擇Elf文件”選項,然后選擇“選擇仿真Elf文件”,以指定Elf文件(SDK創(chuàng)建的)的路徑。該文件在應(yīng)用項目文件夾中提供。要創(chuàng)建測試平臺模板與行為仿真模型(參見圖8),您需要在GUI的項目目錄下選擇項目選項的設(shè)計流程選項卡設(shè)置。
?
然后,通過選擇“生成HDL文件”創(chuàng)建HDL文件,并啟動ISE? (ISim)HDL仿真器,以檢查功能的正確性。圖9是MicroBlaze處理器針對SDK項目中的軟件C代碼發(fā)起的AXI4-Lite事務(wù)處理。請注意,外設(shè)的前兩個寄存器(Status_register和Control_register)可根據(jù)計劃改變其值。位于外設(shè)接口的相應(yīng)AXI4-Lite信號顯示,SMC創(chuàng)建的外設(shè)已經(jīng)成功集成在嵌入式項目中。
強大的工具套件
通過AXI4-Lite從接口使用主機接口模塊將SMC生成的外設(shè)與賽靈思嵌入式平臺集成非常簡單。SMC和賽靈思嵌入式平臺的完美結(jié)合可帶來一款功能強大的工具套件,能夠幫助您設(shè)計和開發(fā)與主機處理器集成的DSP外設(shè)。SMC中的主機接口模塊不僅可提供完成無縫集成所必需的接口,而且還可為嵌入式平臺創(chuàng)建功能強大的解決方案。
評論
查看更多