本發(fā)明涉及數(shù)字信號處理,具體涉及一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法。
背景技術(shù):
1、多核dsp是結(jié)合了數(shù)字信號處理技術(shù)與多核處理器架構(gòu)的先進技術(shù),每個dsp核可以通過高速互聯(lián)總線連接到其他soc的必要部件。如圖4所示,是一種現(xiàn)有的多核dsp在移植到fpga時的結(jié)構(gòu)示意圖,多核dsp可以通過高速互聯(lián)總線連接sram和ddr等fpga的內(nèi)部資源,也可以依次通過高速互聯(lián)總線和高速io互聯(lián)總線連接pcie、srio和gmac等接口,還可以依次通過高速互聯(lián)總線和低速io互聯(lián)總線連接uart、can、i2c和spi等接口。
2、多核dsp在移植到fpga的時候,由于fpga的容量不夠承載全部芯片,所以需要邏輯裁減,比如把多個dsp核減少到兩個dsp核甚至一個dsp核,去掉占用存儲資源較多的sram,去掉當前不驗證的接口,比如如果只驗證gmac,gmac是用于載入待驗證軟件編譯文件,可以先去掉pcie接口和srio接口;同時,低速接口中只保留調(diào)試中必要的部分,其他的都可以去掉,形成一個可以啟動的最小系統(tǒng)。這個最小系統(tǒng)一般包含了芯片可以啟動所必須的部分和待驗證部分,其中包括至少一個dsp核、用于芯片上各部分硬件與dsp核之間通信的高速互聯(lián)總線,用于指令存儲和搬移的ddr、gmac接口、用于打印當前驗證狀態(tài)信息和錯誤信息的uart接口和用于進行啟動的spi接口。
3、然而,即便是在這樣一個裁剪后的系統(tǒng),其包含的邏輯還是遠遠超出一個fpga承受的范圍,想要解決這個問題,通常的手段是把編譯生成的網(wǎng)表分割到數(shù)個fpga上進行布局布線,并完成bit文件生成。
4、但是,使用這種措施至少存在以下三種問題:
5、1)分割后網(wǎng)表抓取觀測信號不便;這是因為網(wǎng)表分割后,原始邏輯被打散,并產(chǎn)生很多額外的網(wǎng)表信號,導致原始信號被打散,同一總線數(shù)據(jù)會被拆成很多信號,抓取波形極為不便;
6、2)可驗證的接口類型變少,特別是難以滿足有最低頻率要求的部分接口;這是因為,通常各個fpga的時鐘是共用的,晶振時鐘在同時供給多個fpga的時候就會在分割的時候被軟件強制分頻,分頻后的主時鐘在某些特殊接口驗證時,連最低頻率要求也不能滿足,這就導致了驗證的困難;
7、3)使用多個fpga,會增加所需成本,特別是在面對高性能需求的場景下,成本會急劇變高。
技術(shù)實現(xiàn)思路
1、針對上述三個問題,本發(fā)明的目的是提出一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,通過將整體系統(tǒng)拆分為兩級系統(tǒng),使得多核dsp移植時對fpga內(nèi)資源的使用和對主頻的需求進行一定的分割,從而用一個fpga就足以移植多核dsp,有效降低成本且無需進行網(wǎng)表分割;同時,由于保證了主頻的需求,使得可驗證的接口類型也有效增加。
2、通過以下技術(shù)方案實現(xiàn)的:
3、一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,用于將多核dsp移植到一個fpga中,多核dsp包括多個dsp核和高速互聯(lián)總線,fpga中至少包括主頻和待驗證模塊,多核dsp共用fpga中的主頻,驗證過程由上位機進行觀測,該方法包括如下步驟:s1、設(shè)置多核dsp和高速互聯(lián)總線作為一級系統(tǒng);在高速互聯(lián)總線的末端增加多個命令檢測模塊,利用多個命令檢測模塊替代待驗證模塊的功能,每個命令檢測模塊之間是并行結(jié)構(gòu);s2、利用步驟s1中的多核dsp下發(fā)多個指令,將多個指令通過高速互聯(lián)總線和多個命令檢測模塊進行驗證,區(qū)分出存在問題的每個通路和不存在問題的每個通路并傳輸?shù)缴衔粰C;s3、在完成步驟s2中的驗證后,設(shè)置高速專用總線并將fpga中的主頻提升到二級系統(tǒng)所需的最低頻率,將高速專用總線、待驗證模塊和多核dsp作為二級系統(tǒng),利用高速專用總線進行多核dsp與待驗證模塊間的通信驗證,得到驗證結(jié)果;其中,高速專用總線是將高速互聯(lián)總線中與待驗證模塊非相關(guān)的通路去除掉。
4、通過將整體系統(tǒng)拆分為兩級系統(tǒng),使得一級系統(tǒng)占用資源多但所需主頻低,二級系統(tǒng)占用資源少但主頻高,使得fpga可以有效移植dsp核,降低成本,無需網(wǎng)表分割,也保證了待驗證模塊的主頻,使得可驗證的接口類型更多。
5、優(yōu)選地,步驟s1中,每個命令檢測模塊均包括命令預存模塊、命令接收模塊、檢測對比模塊和結(jié)果上報模塊;其中,命令接收模塊和命令預存模塊均為buf緩沖區(qū),命令接收模塊用于接收步驟s2中進行驗證時的對應指令并進行解析,命令預存模塊用于預存命令接收模塊的解析結(jié)果并傳輸?shù)綑z測對比模塊;檢測對比模塊用于對檢測結(jié)果進行驗證,判斷出解析結(jié)果是否正確;結(jié)果上報模塊用于將檢測對比模塊的判斷結(jié)果上報到上位機。命令檢測模塊可以有效降低所需主頻并進行有效驗證。
6、優(yōu)選地,fpga中還包括多個內(nèi)核,步驟s3中,若無法將fpga中的主頻提升到二級系統(tǒng)所需的最低頻率,則將一個dsp核用fpga的一個內(nèi)核進行代理,將用于代理的內(nèi)核連接到待驗證模塊。利用fpga的內(nèi)核代理dsp核,可以減低多核dsp在移植時所需的資源使用量。
7、優(yōu)選地,在利用fpga的一個內(nèi)核代理一個dsp核時,利用被代理的dsp核對應的命令檢測模塊連接用于代理的內(nèi)核,驗證通路是否存在問題,若存在問題,則上報到上位機;若不存在問題,則再將內(nèi)核連接到待驗證模塊。利用fpga的內(nèi)核進行代理處理,可以進一步減少多核dsp占用的資源,保證驗證的順利進行。
8、優(yōu)選地,待驗證模塊分為多個子模塊,每個子模塊設(shè)置有不同的優(yōu)先級,在步驟s3中,若無法將fpga中的主頻提升到二級系統(tǒng)所需的最低頻率,則將每個子模塊按照優(yōu)先級的順序進行通信驗證。設(shè)置優(yōu)先級按順序進行通信驗證,可以有效降低驗證時的使用資源和主頻壓力,使得移植過程更順利,也能保證可驗證的接口類型所需的主頻要求。
9、本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果是:
10、本發(fā)明的技術(shù)方案,通過將整體系統(tǒng)拆分為兩級系統(tǒng),使得多核dsp移植時對fpga內(nèi)資源的使用和對主頻的需求進行一定的分割,從而用一個fpga就足以移植多核dsp,有效降低成本且無需進行網(wǎng)表分割;同時,由于保證了主頻的需求,使得可驗證的接口類型也有效增加。
1.一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,用于將多核dsp移植到一個fpga中,多核dsp包括多個dsp核和高速互聯(lián)總線,fpga中至少包括主頻和待驗證模塊,多核dsp共用fpga中的主頻,驗證過程由上位機進行觀測,其特征在于,所述方法包括如下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,其特征在于,步驟s1中,每個命令檢測模塊均包括命令預存模塊、命令接收模塊、檢測對比模塊和結(jié)果上報模塊;
3.根據(jù)權(quán)利要求1所述的一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,fpga中還包括多個內(nèi)核,其特征在于,步驟s3中,若無法將fpga中的主頻提升到二級系統(tǒng)所需的最低頻率,則將一個dsp核用fpga的一個內(nèi)核進行代理,將用于代理的內(nèi)核連接到待驗證模塊。
4.根據(jù)權(quán)利要求3所述的一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,其特征在于,在利用fpga的一個內(nèi)核代理一個dsp核時,利用被代理的dsp核對應的命令檢測模塊連接用于代理的內(nèi)核,驗證通路是否存在問題,若存在問題,則上報到上位機;若不存在問題,則再將內(nèi)核連接到待驗證模塊。
5.根據(jù)權(quán)利要求1所述的一種基于fpga實現(xiàn)多核dsp二級系統(tǒng)拆分驗證的方法,其特征在于,待驗證模塊分為多個子模塊,每個子模塊設(shè)置有不同的優(yōu)先級,在步驟s3中,若無法將fpga中的主頻提升到二級系統(tǒng)所需的最低頻率,則將每個子模塊按照優(yōu)先級的順序進行通信驗證。