SOPC設計中自定義IP的開發(fā)
1 SOPC技術與IP核
SOPC的主要思想是提供一個IP庫,用戶從IP庫中選擇IP核來組裝系統(tǒng),因此IP核是SOPC設計的關鍵技術之一。雖然IP核一詞在眾多場合被使用,但它并沒有一個統(tǒng)一的定義。從概念上可以這樣理解它:IP核是指將一些在數字電路中常用但比較復雜的功能塊,如FIR濾波器、SDRAM控制器、UART控制器等設計成可修改參數的模塊,讓其他用戶可以直接調用這些模塊,這樣就大大減輕了工程師的負擔,避免重復勞動,縮短系統(tǒng)開發(fā)時間。IP 核設計一般可以有3個來源:EDA廠商提供,用戶自己定義,第三方提供。
IP核可以分為3類:
(1) 軟核(soft-core)。軟核用硬件描述語言寫成,可以是對設計的算法級描述,或功能級描述,也可以是僅僅用于功能仿真的行為模擬。
(2) 固核(firm-core)。固核在軟核基礎上開發(fā),是一種可綜合的、并帶時序信息及布局布線規(guī)劃的設計,用硬件描述語言寫成。
(3) 硬核(hard-core)。指和特定工藝相聯(lián)系的物理版圖,設計的正確性已經投片驗證, 可在新設計中作為特定的功能模塊直接調用。
一般來說,EDA廠商及第三方提供的IP核都是功能上比較通用的,但在進行SOC設計時,用戶經常有特殊需求,這時必須自定義邏輯來實現(xiàn)所要的功能。所以在進行SOC設計時,如何靈活地加入用戶自定義邏輯就顯得尤為重要。
2 基于EDK的SOPC開發(fā)技術
進行SOPC系統(tǒng)開發(fā),首先是要選擇的是FPGA平臺、處理器方案以及開發(fā)軟件,目前常采用的是由世界上兩大主要的FPGA器件生產廠商所提供的平臺、SOPC方案及相關開發(fā)套件:一是Altera公司的FPGA產品,采用Nios處理器軟核或硬核ARM,開發(fā)工具由QuartusⅡ和SOPC Builder組成;二是采用Xilinx公司的FPGA,基于Microblaze軟核或Powerpc405硬核,開發(fā)工具由ISE和EDK組成。下面就以Xilinx公司的軟件EDK為例介紹SOPC系統(tǒng)的開發(fā)過程。EDK有一個友好的圖形用戶界面,通過這個界面,用戶可以從Xilinx提供的IP庫中選取一些組件,如處理器、SDRAM、Flash、各種I/O等,并可通過選擇配置相應的參數。EDK有個尤為重要的功能:在進行SOPC設計時,如果用戶有特殊功能要求,但IP庫中沒有,則用戶可以加入自定義的邏輯來實現(xiàn),具體的流程如圖1所示。
評論