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