|
本帖最后由 51黑黑黑 于 2016-2-23 03:53 編輯
在采用SOPC Builder構(gòu)建通用系統(tǒng)互連結(jié)構(gòu)的過(guò)程中,最重要的一項(xiàng)工作是添加符合Avalon接口規(guī)范的自定義模塊。模塊可以采用HDL文件和原理圖文件形式,通過(guò)Component Editor添加到SOPC Builder的模塊庫(kù)中,從而在今后的項(xiàng)目中使用和重用。 在添加文件后,Component Editor會(huì)調(diào)用Quartus II中的Analyzer對(duì)文件進(jìn)行分析,獲取文件的接口信號(hào)信息,再通過(guò)一系列的配置頁(yè)面設(shè)定自定義模塊和Avalon設(shè)備信號(hào)的對(duì)應(yīng)關(guān)系,進(jìn)而生成特定的配置文件,供SOPC Builder生成Avalon互連結(jié)構(gòu)與自定義模塊的連接。
Component Editor只提取文件的接口屬性,不關(guān)心文件的內(nèi)容(但是由于Quartus II中的Analyzer會(huì)分析文件的語(yǔ)法,所以語(yǔ)法有問題的文件是不能通過(guò)Component Editor的第一步處理的)。我們可以利用這一點(diǎn),只給Component Editor提供一個(gè)Wrapper文件,即只有接口描述而沒有邏輯描述的文件,縮短文件的分析時(shí)間。在Wrapper文件添加成功后,可以重新編輯Wrapper文件的內(nèi)容,或者在Wrapper文件中例化包含有效邏輯的設(shè)計(jì)文件,不需要重新在Component Editor中處理。
上述方法適用于接口確定,邏輯可進(jìn)一步改變的設(shè)計(jì)文件。但是當(dāng)文件的接口發(fā)生改變時(shí),就需要在Component Editor中重新添加模塊設(shè)計(jì)文件和生成配置文件。這里有一點(diǎn)很不方便:Component Editor只讀入模塊設(shè)計(jì)文件而不讀入已有的配置文件,造成先前的配置全部失效,需要用戶重新配置。在文件接口復(fù)雜和數(shù)量較多的情況下會(huì)非常不方便:一方面容易出錯(cuò),另一方面由于Component Editor運(yùn)行速度較慢,重新配置需要較長(zhǎng)的時(shí)間。
在自主開發(fā)SOPC Builder模塊時(shí),這樣的問題是很常見的。在沒有工程壓力,只想嘗試一下的情況下,幾個(gè)來(lái)回以后,我就沒有耐心了。
其實(shí),Altera提供了一種模塊接口命名方式,可以讓Component Editor自動(dòng)識(shí)別和映射自定義模塊的接口信號(hào),不需要用戶手動(dòng)配置。在Quartus II Version 7.1 Handbook Volume 4: SOPC Builder中專門有一段,給出了自動(dòng)識(shí)別信號(hào)命名規(guī)范:在Section I. SOPC Builder Features中的5. Component Editor中的Signals Tab里的Naming Signals for Automatic Type and Interface Recognition。
該方法可以通過(guò)在HDL文件中恰當(dāng)?shù)孛涌谛盘?hào),讓Component Editor自動(dòng)識(shí)別任何類型的Avalon設(shè)備信號(hào)。包括:主設(shè)備接口信號(hào)(avm_*)、從設(shè)備接口信號(hào)(avs_*)、三態(tài)從設(shè)備接口信號(hào)(ats_*)和全局控制信號(hào)(gls_*)四種信號(hào)。其中包括與Avalon無(wú)關(guān)的對(duì)外接口信號(hào)(*_*_export_*)。
采用這種方法后,即使需要Component Editor重新分析模塊設(shè)計(jì)文件,原有的映射關(guān)系也不會(huì)被破壞;既省去了第一次手動(dòng)配置的工作,也省去了進(jìn)一步編輯模塊的配置工作。提高了工作效率。
如果對(duì).PTF文件有很深入的認(rèn)識(shí),也可以手工編輯和修改.PTF文件,代替Component Editor的工作:Component Editor的目標(biāo)就是為了生成.PTF文件。
值得一提的是,在Quartus II7.1版中,SOPC Builder開始支持.TCL文件作為模塊的接口配置文件,在運(yùn)行Component Editor后生成的也只有.TCL文件。出于向下兼容的考慮,.PTF文件仍然是有效的配置文件,但是在新模塊的添加中不再采用這種格式。.TCl文件的形式更簡(jiǎn)潔,內(nèi)容更清晰,更加有利于手工編輯。
此外,SOPC Builder生成的文件組織結(jié)構(gòu)和以前也有差異:更簡(jiǎn)潔,更規(guī)范,相關(guān)性更強(qiáng),更有利于移植和維護(hù)。
還需要提到的一點(diǎn)是:Component Editor的HDL頁(yè)也有變化。一個(gè)模塊只能也只需要添加一個(gè)頂層文件,其余的下層文件在Quartus II執(zhí)行綜合時(shí)需要在用戶自定義庫(kù)或包含文件列表中添加。對(duì)于仿真,需要在Component Editor的HDL頁(yè)的仿真文件中添加頂層文件和下層文件。這一點(diǎn),也是幾年來(lái)SOPC Builder的一大改進(jìn)。畢竟,Component Editor只關(guān)心文件的接口,不關(guān)心文件的內(nèi)容。
總結(jié)一下,本文要點(diǎn)如下:
1. 采用Wrapper文件代替原始設(shè)計(jì)文件添加到Component Editor中,有利于采用自頂向下的開發(fā)流程。
2. 采用Altera的自動(dòng)識(shí)別命名方式,可以顯著減少手動(dòng)配置的工作量。
3. 手工編輯和修改.PTF或.TCL文件也是添加SOPC Builder模塊的一種高效方式。
|
|