接 SDRAM 的 CLK,BM3101 的信號 SDCSN0 接 SDRAM 的 CS,BM3101 的信號 SDRASN 接 SDRAM 的 RAS,BM3101 的信號 SDCASN 接 SDRAM 的 CAS,BM3101 的信號 SDWR 接 SDRAM 的 WE,BM3101 的信號 SDDQM0 接 SDRAM 的 DQM0,BM3101 的信號 SDDQM1 接 SDRAM 的 DQM1,BM3101 的信號 SDDQM2 接 SDRAM 的 DQM2,BM3101 的信號 SDDQM3 接 SDRAM 的 DQM3。
[0056]如圖2所示,基于上述電路,本發明還提供了一種星載DSP軟件任務動態重構方法, 步驟如下:
[0057] (1)地面站生成針對星載DSP芯片的配置文件,即DSP重構程序;
[0058] (2)令DSP芯片和CPU芯片上電啟動,將DSP芯片設置為HPI引導模式;
[0059] (3)地面站將生成的DSP重構程序上注給CPU芯片,CPU芯片判斷所述DSP重構程序 的大小,與預設的CHJ存儲閾值進行比較,如果DSP重構程序的大小超過所述CPU存儲閾值 64KB,則地面站上注的DSP重構程序同時存入第一Flash芯片和第一SRAM芯片中,否則,地面 站上注的DSP重構程序同時存入第一Flash芯片和CPU芯片的內部RAM中;
[0060] (4)上注的DSP重構程序存儲完畢之后,CPU芯片將第一 SRAM芯片中的數據發送給 FPGA芯片,FPGA芯片與DSP芯片之間實現HPI通信,將DSP重構程序發送給DSP芯片;FPGA芯片 判斷所述DSP重構程序的大小,與預設的DSP存儲閾值64KB進行比較,如果DSP重構程序的大 小超過所述DSP存儲閾值,則所述DSP重構程序存入第二SRAM芯片中,否則,DSP重構程序直 接存入DSP芯片內部RAM中;
[0061] (5)DSP芯片根據存儲在第二SRAM芯片中的DSP重構程序或者存儲在DSP芯片內部 RAM中的DSP重構程序進行重構操作,重構完成后,FGPA芯片將FPGA芯片與DSP芯片之間的通 信管腳置為三態,將FPGA芯片與CPU芯片之間的通信管腳也置為三態。
[0062] BM3101通過HPIC、HPIA、HPID和16位數據線與FT-6713進行程序數據的注入和中斷 控制。程序加載實現的流程如圖3所示。
[0063] 為了實現總線變化以滿足DSP程序注入接口的時序要求,同時滿足快速訪問的性 能要求,根據上述BM3101與FT-6713HPI接口的連接情況,對HPIC、HPIA、HPID的相應地址訪 問進行了如下的定義:
[0064]
[0065] 基于以上地址定義,按照流程圖的執行順序,執行以下操作:
[0066] (1)配置 HPIC
[0067]在訪問數據之前,必須先初始化HPIC中的HW0B位,該比特位設置第一個半字是所 傳32位數據的高16位(MSB16)還是低16位(LSB16)。在這里需要注意HHWIL信號線與HW0B位 所起作用的不同,兩者的共同協作才能確保數據的正確傳輸。需要注意的是,HPIC的高16位 和低16位內容是相同的,所以寫入相同的數據進行設置。
[0068] (2)配置 HPIA
[0069]將操作地址寫到HPIA中。由前所述,FT-6713要從0地址處開始執行程序。因此需要 將程序加載到0地址開始的內存中。
[0070] (3)寫入數據到HPID
[0071] 存取HPID時,通過控制HCNTL[ 1:0]信號可選擇帶地址自增的讀寫操作或是不帶地 址自增的讀寫操作。當訪問連續的FT-6713存儲空間時,使用帶地址自增的讀寫操作只需要 對HPIA寄存器賦值一次即可,能夠給數據存取操作帶來很大的方便。本文操作的是連續地 址,因此使用帶地址自增的HPID,這樣僅需要進行一次設置HPIA,之后便不用再對其進行設 置。
[0072] (4)發送數據傳輸完畢中斷
[0073]當加載數據全部寫入完成后,通知FT-6713數據加載完畢,這需要通過設置HPIC中 的FT-6713INT位來完成,這樣當主機向FT-6713發送了DSP INT中斷后,FT-6713會從0地址 處開始執行。
[0074]在以上執行過程中,當主機發起對HPI寄存器的讀或寫命令時,主機送出的硬件信 號為HSTR0BE (由 HCS,HDS1 /2產生),HR/W,HCNTL0/1,HWIL,以及HD [ 0: η ]。HPI 在HSTR0BE的下 降沿采樣控制信號HR/W,HCNTL0/1,HWIL判斷主機的操作命令,并根據控制信號做出相應的 響應。
[0075] 寫(HR/W為低)命令時,在HSTR0BE的上升沿將數據線上的信號鎖存到HCNTL0/1和 HWIL指向的寄存器。當對HPID寫操作完成后,HPID的內容會通過DMA送到HPIA指向的內存單 J L· 〇
[0076] 讀命令(HR/W為高)時,對HPIC、HPIA寄存器進行操作時,HPI將寄存器的值直接送 到數據總線上;對HPID寄存器進行操作時,HPI將HRDY置為忙狀態,HPI DMA將數據從HPIA指 向的內存單元讀到HPID,再送到數據線上,并清除HRDY忙狀態,在讀HPID后半字時,數據從 寄存器直接送到數據總線上,不會出現HRDY信號忙狀態。
[0077]為實現FT-6713任務的動態加載,FT-6713采用HPI引導模式,上電后其他外設啟 動,FT-6713內核仍處于掛起狀態;此時外部主機通過HPI接口對FT-6713進行配置,將代碼 和數據加載到FT-6713的內存中;當主機完成程序加載后,主機向HPIC寄存器中的DSPINT位 寫1,向FT-6713發出中斷;FT-6713收到中斷后,FT-6713內核從掛起狀態喚醒,從0地址處啟 動,開始執行程序。
[0078] 對于FT-6713的C程序來說,是要從_c_int00處而不是0地址啟動執行,因此,設計 時,在0地址處增加跳轉指令,并將目標地址執行了 _c_int00處,從而實現FT-6713程序的正 確啟動。
[0079] 實施例:
[0080]將以上的方法,應用到所設計的微系統芯片中。微系統芯片的架構包括:BM3101處 理器、FT6713DSP、BQ2V1000FPGA、SDRAM、FLASH。
[0081 ] (1)根據本方法的硬件連接方案,對系統硬件部分進行設計與實現;
[0082] (2)本文使用TI公司提供的工具hex6x·exe和hex2aray·exe對TI CCS3· 1IDE下生 成的原始文件進行格式的轉換。將.out文件轉換為16進制配置數組。
[0083] (3)將FT6713程序配置數組、BQ2V1000中的時序轉換邏輯IP核燒寫到BM3101處理 器的FLASH中。
[0084] (4)上電啟動,由BM3101將轉換邏輯IP核和FT6713程序配置數組依次讀取到 BM3101 的SDRAM 中。
[0085] (5)動態加載轉換邏輯IP核,在BQ2V1000中生成轉換邏輯構建BM3101處理器和DSP 的配置通路;
[0086] (6)在BM3101中,應用所提出的軟件部分實現方法,依次讀取FT6713程序配置數組 的數據,并通過讀寫HPIC、HPIA、HPID等寄存器,實現DSP軟件任務的動態加載;
[0087] (7)在BM3101處理器中,根據本文所提出的軟件部分DSP啟動方法,通過BM3101的 軟件驅動,實現FT6713的任務驅動。
[0088] 基于以上所實現的微系統,利用提出的DSP軟件任務動態重構電路和方法,實現了 由BM3101處理器向FT6713DSP的程序注入和啟動,結果表明,本方法可在135ms的時間內,實 現280KB DSP軟件任務的注入和啟動。相比其他方法,即實現了高性能,同時利用自身集成 資源,減少了芯片的數量、系統體積和功耗。
[0089] 本發明說明書中未作詳細描述的內容屬于本領域專業技術人員的公知技術。
【主權項】
1. 一種星載DSP軟件任務動態重構電路,其特征在于包括:FPGA芯片、DSP芯片、CPU芯 片、第一 Flash芯片、第一 SRAM芯片和第二SRAM芯片; 地面站將DSP重構程序上注到CPU芯片中,第一Flash芯片和第一SRAM芯片用于存儲上 注到CPU芯片的DSP重構程序,CPU芯片從第一 SRAM芯片中讀取數據,并通過FPGA傳輸給DSP 芯片,從而對DSP芯片進行軟件任務動態重構;第二SRAM芯片用于存儲DSP重構程序。2. 根據權利要求1所述的一種星載DSP軟件任務動態重構電路,其特征在于:所述FPGA 芯片、DSP芯片、CPU芯片、第一 Flash芯片、第一 SRAM芯片和第二SRAM芯片均為衛星上的原有 芯片。3. 根據權利要求1所述的一種星載DSP軟件任務動態重構電路,其特征在于:FPGA芯片、 DSP芯片、CPU芯片、第一 Flash芯片、第一 SRAM芯片和第二SRAM芯片均以同一個SIP芯片的形 式實現。4. 根據權利要求1所述的一種星載DSP軟件任務動態重構電路,其特征在于:所述FPGA 芯片采用BQ2V1000型號,DSP芯片采用FT-6713型號,CPU芯片采用BM3101型號。5. -種基于權利要求1所動態重構電路實現的動態重構方法,其特征在于步驟如下: (1) 地面站生成針對星載DSP芯片的配置文件,即DSP重構程序; (2) 令DSP芯片和CRJ芯片上電啟動,將DSP芯片設置為HPI引導模式; (3) 地面站將生成的DSP重構程序上注給CPU芯片,CPU芯片判斷所述DSP重構程序的大 小,與預設的CPU存儲閾值進行比較,如果DSP重構程序的大小超過所述CPU存儲閾值,則地 面站上注的DSP重構程序同時存入第一Flash芯片和第一SRAM芯片中,否則,地面站上注的 DSP重構程序同時存入第一Flash芯片和CPU芯片的內部RAM中; (4) 上注的DSP重構程序存儲完畢之后,CPU芯片將第一 SRAM芯片中的數據發送給FPGA 芯片,FPGA芯片與DSP芯片之間實現HPI通信,將DSP重構程序發送給DSP芯片;FPGA芯片判斷 所述DSP重構程序的大小,與預設的DSP存儲閾值進行比較,如果DSP重構程序的大小超過所 述DSP存儲閾值,則所述DSP重構程序存入第二SRAM芯片中,否則,DSP重構程序直接存入DSP 芯片內部RAM中; (5 )DSP芯片根據存儲在第二SRAM芯片中的DSP重構程序或者存儲在DSP芯片內部RAM中 的DSP重構程序進行重構操作,重構完成后,FGPA芯片將FPGA芯片與DSP芯片之間的通信管 腳置為三態,將FPGA芯片與CPU芯片之間的通信管腳也置為三態。6. 根據權利要求5所述的一種星載DSP軟件任務動態重構方法,其特征在于:FPGA芯片 與DSP芯片之間實現HPI通信具體為:其中,!《^111、!《^110、!1服11^為05?芯片的即1控制管腳,冊14、冊1(:和冊10為05?芯片內 的HPI控制寄存器。
【專利摘要】一種星載DSP軟件任務動態重構電路及重構方法,基于集成的FPGA芯片構建處理器總線接口和DSP?HPI接口的物理連通鏈路。在處理器中設計軟件程序,用于驅動總線時序變化,并設計總線接口與HPI接口的時序轉換邏輯,在需要動態加載DSP任務時,通過動態重構在FPGA中實現轉換邏輯電路;處理器從FLASH中獲取DSP運行程序數據,通過持續改變處理器中的軟件運行,以驅動總線產生程序數據對應的時序;在程序數據加載完成后,由處理器發送啟動指令,實現DSP程序的啟動和運行。
【IPC分類】G06F15/163, G06F15/177
【公開號】CN105608048
【申請號】CN201510965340
【發明人】陸振林, 焦燁, 趙元富, 蘭利東, 韓逸飛, 趙光忠
【申請人】北京時代民芯科技有限公司, 北京微電子技術研究所
【公開日】2016年5月25日
【申請日】2015年12月21日