SOPC硬件系統(tǒng)設(shè)計(jì)概要
出處:電子愛好者博客 發(fā)布于:2013-05-28 14:14:40
摘要:在系統(tǒng)設(shè)計(jì)復(fù)雜度不斷提高及新產(chǎn)品市場周期不斷縮短的壓力下,把FPGA及微處理器內(nèi)嵌在同一芯片上,構(gòu)建成為一個可編程的SOC系統(tǒng)體系框架結(jié)構(gòu),建成所謂的可編程芯片系統(tǒng)SOPC(System on a Programmable Chip),從而為系統(tǒng)設(shè)計(jì)者提供了又一靈活快捷的設(shè)計(jì)方法與途徑.
1 SOPC系統(tǒng)簡介
SOPC是一種新的系統(tǒng)設(shè)計(jì)技術(shù),也是一種新的軟硬件綜合設(shè)計(jì)技術(shù).通過它,可以很快地將硬件系統(tǒng)(包括微處理器,存儲器,外設(shè)以及用戶邏輯電路等)和軟件設(shè)計(jì)都放在一個可編程的芯片中,以達(dá)到系統(tǒng)的IC設(shè)計(jì).這種設(shè)計(jì)方式,具有開發(fā)周期短以及系統(tǒng)可修改等優(yōu)點(diǎn).設(shè)計(jì)完成的SOPC可以轉(zhuǎn)為ASIC芯片,從而可以實(shí)現(xiàn)快速量產(chǎn).一旦定義了處理器之后,設(shè)計(jì)者就“具備”了體系結(jié)構(gòu),可以馬上開始設(shè)計(jì)軟件原型.CPU周邊的專用硬件邏輯可以慢慢地集成進(jìn)去,在每個階段軟件都能夠進(jìn)行測試,解決遇到的問題.另外,軟件組可以對結(jié)構(gòu)方面提出一些建議,改善代碼效率和處理器性能,這些軟件.硬件權(quán)衡可以在硬件設(shè)計(jì)過程中間完成.
2 SOPC硬件系統(tǒng)設(shè)計(jì)流程
在采用Niosli處理器設(shè)計(jì)SOPC嵌人式系統(tǒng)時,通常會按照以下的步驟:
?。?)分析系統(tǒng)需求說明,包括功能需求和性能約束等.
?。?)根據(jù)分析結(jié)果,選擇片外外設(shè)和片內(nèi)IP(知識產(chǎn)權(quán)核).除此以外,還要對選擇的IP和外設(shè)進(jìn)行初步性能評估,以保證能夠滿足系統(tǒng)需求.
(3)確定IP和系統(tǒng)參數(shù).
?。?)確定系統(tǒng)互聯(lián)邏輯,分配FPGA的引腳等.
?。?)結(jié)合Nios提供的軟件開發(fā)包進(jìn)行軟件開發(fā).
其中硬件系統(tǒng)設(shè)計(jì)內(nèi)容可以分成兩大部份:
(1)用SOPC Builder創(chuàng)建Nios系統(tǒng)模塊并存人塊設(shè)計(jì)文件(。bdf).
(2)用Quartus II編程器和ByteBlaster 1I電纜配置Nios開發(fā)板上的FPGA.
SOPC Builder可看作是一個以IP模塊為輸人,集成系統(tǒng)為輸出的工具.SOPC Builder圖形用戶界面啟動時,會自動搜索已安裝的IP模塊.SOPCBuilder主窗口中的左側(cè)模塊池內(nèi)顯示了所有發(fā)現(xiàn)的IP模塊列表.SOPC Builder通過在一個搜索路徑中的所有目錄下搜索名為class.pff的文件來獲得IP模塊列表.SOPC Builder讓IP制作者制定有關(guān)IP應(yīng)該如何連接的細(xì)節(jié),這樣能夠減輕用戶為每個設(shè)計(jì)項(xiàng)目重新再設(shè)計(jì)(或總線結(jié)構(gòu))的工作量.而且,通過追蹤整個系統(tǒng)的配方,就能夠使用SOPCBuilder透明地調(diào)整相應(yīng)的系統(tǒng)軟件以反映硬件配置的變化.SOPC Builder設(shè)計(jì)過程有三個主要步驟.
2.1構(gòu)件開發(fā)
SOPC Builder的IP模塊是由IP開發(fā)人員提供的硬件(RTI..原理圖或EDIF)和軟件(C源代碼.頭文件等).IP開發(fā)者經(jīng)常會希望拿一個現(xiàn)成的具有微處理器總線接口的邏輯模塊,然后轉(zhuǎn)換成SOPCBuilder的IP模塊.這需要如下三個主要步驟:
(1)建立一個名為class.ptf的簡單文本文件(通常這個過程可以簡化,比如通過復(fù)制一個類似IP模塊的class.pff文件,然后修改其中的某些參數(shù)).
?。?)實(shí)現(xiàn)IP模塊的所有文件(HDL文件.軟件支持文件(。C和。h),等等),連同class.pff文件,放置在同一個目錄下.
?。?)將上述的目錄及文件復(fù)制到SOPC Builder的搜索路徑下,設(shè)定目錄名與該IP模塊的正式名稱相l(xiāng)司.
SOPC Builder內(nèi)包括和安裝了一些IP模塊,其他一些IP模塊可以從Ahera或第三方IP提供商處獲得.安裝.
2.2系統(tǒng)集成
用戶創(chuàng)建和編輯一個新的系統(tǒng)時,一般要從庫中選擇一些IP模塊,逐個地配置這些IP模塊,以及設(shè)置整個系統(tǒng)的配置(如,指定地址映射和主/從端口連接等).在這個過程中,用戶的設(shè)置都會保存在系統(tǒng)PTF文件中,一般不會有其他文件的產(chǎn)生或修改.
用戶可以在模塊池內(nèi)雙擊IP模塊名.按下Add按鈕或從系統(tǒng)菜單中選擇Add Module來添加一個IP模塊.每添加一個IP模塊,一個新的模塊行會出現(xiàn)在模塊表格內(nèi),并有一個臨時的模塊名.在添加階段的開始,SOPC Builder會在系統(tǒng)胛F文件中建立一個新的MODULE節(jié),并將class.ptf文件MOD-ULE-DEFAULTS節(jié)中的所有內(nèi)容復(fù)制到這個新的MODULE節(jié)中.因此,IP模塊即使沒有Add-Pro-gram程序,也可以通過MODULE-DEFAULTS節(jié)提供添加階段所需的部分或全部信息.例如一個IP模塊的數(shù)據(jù)寬度總是16位,則不需要編寫Add-Pro-gram程序,用來在系統(tǒng)PTF文件中設(shè)置數(shù)據(jù)寬度.
直接設(shè)置class.pff文件MODULE-DEFAULTS節(jié)中的參數(shù)更容易些.此后,SOPC Builder會運(yùn)行IP模塊聲明的Add-Program程序,并通知Add-Program程序如何找到新建立的MODUI.E節(jié).SOPC Builder以命令行參數(shù)的方式把這個信息傳遞給Add-Pro-gram程序.Add-Program程序可以修改新MODULE節(jié)內(nèi)的任何節(jié)或參數(shù),比如WIZARD-SCRWr-ARGUMENTS和SYSTEM-BUILDER-INFO部分,也可能還有其他部分.
大部分SOPC Builder的IP模塊都提供一個編輯工具,用來在模塊添加到系統(tǒng)之后重新改變它的參數(shù).用戶雙擊代表系統(tǒng)中某一模塊的那一行,就可以對其編輯了.但如果模塊class.pff文件中只有一個空的Edit-Program程序參數(shù),則什么也不會發(fā)生.Edit-Program程序也可以通過命令行方式調(diào)用,命令行參數(shù)與Add-Program程序相同,以便它能找到相應(yīng)的系統(tǒng)陰F文件和新建立的MODULE節(jié).
通常,Edit-Program程序和Add-Program程序提供了相同的圖形用戶界面來配置模塊,它們往往就是同一個程序.
至少一個IP模塊添加到系統(tǒng)中后,用戶就可以通過SOPC Builder圖形用戶界面來配置系統(tǒng)了.地址映射表,主/從端口連接,甚至System Generation標(biāo)簽頁的選項(xiàng)等等,都會影響系統(tǒng)的布局布線.
綁定階段用來提供Add/Edit-Program程序之外的參數(shù)設(shè)定.綁定階段在系統(tǒng)配置階段之后,所以可以重新設(shè)定與整個系統(tǒng)模塊相關(guān)的選項(xiàng).除非用戶返回到前面的階段,否則模塊和它們的互連關(guān)系不會改變.綁定階段所做的選擇可能包括:從列表中選擇特定類型的模塊;選擇中斷映射;還有一些其他的操作,等等.這些操作不要通過模塊的向?qū)韴?zhí)行,因?yàn)橛脩籼砑硬煌K的順序可能是不確定的.
2.3 系統(tǒng)生成
當(dāng)用戶完成了SOPC Builder中的設(shè)計(jì)活動之后,按下Generate按鈕,或從命令行執(zhí)行系統(tǒng)生成程序時,系統(tǒng)生成就開始了.系統(tǒng)生成的結(jié)果是一系列設(shè)計(jì)文件。如HDL文件,SDK(software-sup-port)目錄和模擬工程文件等等.
SOPC Builder生成Nios CPU的同時,會生成一個SDK目錄.SOPC Builder為每一個CPU生成SDK目錄之后,SOPC Builder接下來會逐個地為系統(tǒng)列表中的每一個模塊執(zhí)行相應(yīng)的生成程序.
SOPC Builder的IP模塊會在class.pff文件中指定自己的生成程序,如果class.pff文件中Generator-Pro-gram參數(shù)值為空值(.‘),則SOPC Builder包含的缺省生成程序會執(zhí)行.缺省生成程序執(zhí)行一些為創(chuàng)建一個新模塊所需的簡單合理的操作,使得模塊在系統(tǒng)中可以看得到.這些操作在模塊class.ptc文件的DEFAULT_GENERATOH節(jié)中被參數(shù)化.如果某一個IP模塊顯式地指定Gcnmator-Program參數(shù)值為none,則在它的模塊生成階段什么也不會發(fā)生(這不影響其他模塊的生成).
模塊的生成程序可能會非常簡單(如缺省生成程序,僅僅拷貝一些文件),也可能非常復(fù)雜.許多SOPC Builder的IP模塊的HDL代碼實(shí)現(xiàn)直接由生成程序來產(chǎn)生,而不是簡單從庫里拷貝.每一個模塊的生成程序以命令行執(zhí)行時,帶有一系列的參數(shù),用來指定系統(tǒng)名稱和生成的MODULE節(jié)的名稱.
class.ptf文件中有一個特殊的部分名為DE.FAULT-GENERATOR,用來給缺省生成程序設(shè)置相應(yīng)的參數(shù).這個部分僅對缺省生成程序有用.如果Generator_Program參數(shù)沒有指定缺省生成程序,很顯然,這一部分的內(nèi)容就被忽略掉了.缺省生成程序產(chǎn)生HDL和完成系統(tǒng)綜合和布局布線的準(zhǔn)備工作等,缺省生成程序主要完成以下三個操作:模塊重新命名并封裝;拷貝實(shí)現(xiàn)文件到工程目錄;整理用于綜合的某些文件.
SOPC Builder為系統(tǒng)生成所有實(shí)現(xiàn)總線互連邏輯的ttDL代碼(VHDL或Veritog).一個完整的系統(tǒng)PTF文件包含有足夠的信息,為每一個系統(tǒng)主設(shè)備和從設(shè)備生成地址解碼器.數(shù)據(jù)選擇器.共享從端口的仲裁器.中斷邏輯和總線時序邏輯等.
SOPC Builder把系統(tǒng)頂層模塊的定義寫入系統(tǒng)HDL文件中.頂層模塊的定義包括:系統(tǒng)所有L/O端口的聲明.系統(tǒng)中每個模塊的實(shí)例.包含總線邏輯的仲裁模塊的實(shí)例.以及各個模塊間的互連邏輯.
SOPC Builder還在系統(tǒng)HDL文件中定義了一個測試模塊(一般命名為test-bench).測試模塊包含一個系統(tǒng)模塊的實(shí)例(命名為DUT),還有系統(tǒng)時鐘和復(fù)位輸入的激勵源.SOPC Builder還產(chǎn)生一個原理圖文件(。bsf),使得系統(tǒng)模塊可以在Quaaus的圖形編輯方式下使用.
除了在前面階段生成的硬件(HDL)文件和軟件(SDK)文件,SOPC Builder還會生成一些文件和目錄以支持第三方的工具.
SOPC Builder為快速模擬系統(tǒng),會生成一個ModelSim工程目錄:<system-name>一sim/,并在該目錄下生成功能仿真需要的所有文件.
在工程文件生成階段,SOPC Builder生成一個<system name>一generation-script文件.這是一個shell腳本??梢詮拿钚袌?zhí)行,也可以從其他腳本或程序中執(zhí)行.這個腳本可以在不進(jìn)入圖形用戶界面的情況下,重新生成系統(tǒng).
2.4 Quartus II軟件綜合
SOPC Builder僅僅生成系統(tǒng)模塊的HDL描述.
如果要綜合和編譯系統(tǒng),則需要使用Quartus II軟件工具.有時IP開發(fā)者僅提供綜合好的硬件描述,在這種情況下,需要對該IP封裝以避免Quartus對其再次綜合.IP開發(fā)者可以使用缺省生成程序,并通過設(shè)置DEFAULT-GENERATOR/black-box參數(shù)來實(shí)現(xiàn)封裝.設(shè)置了black-box參數(shù)之后,缺省生成程序會自動生成一個封裝文件,以黑盒的方式封裝這個IP.3結(jié)束語
SOPC Buffder根據(jù)用戶選擇的IP生成相應(yīng)的HDL描述文件(系統(tǒng)模塊文件),這些文件與用戶邏輯區(qū)域內(nèi)的設(shè)計(jì)描述文件一起由Quartus軟件綜合,然后到FPGA內(nèi),這樣就構(gòu)成了系統(tǒng)的硬件基礎(chǔ).
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 電磁頻譜管控系統(tǒng)由什么組成的呢2025/9/5 17:11:49
- 深入解析:LDO 的 ADJ 引腳串電容到地的用途2025/8/7 15:33:42
- 一文詳解AUTOSARMCAL模塊2025/7/22 17:09:59
- 什么是閉環(huán)控制系統(tǒng),閉環(huán)控制系統(tǒng)的知識介紹2025/6/25 11:49:39
- 伺服系統(tǒng)由哪幾個部分組成伺服系統(tǒng)是如何分類的2025/5/7 16:02:21









