本發(fā)明涉及一種集成電路,特別涉及包括fpga的計(jì)算架構(gòu)及其在eda設(shè)計(jì)方面的應(yīng)用。
背景技術(shù):
eda技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在eda軟件平臺(tái)上,用硬件描述語言vhdl完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。eda技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。
eda工具軟件可大致可分為芯片設(shè)計(jì)輔助軟件、可編程芯片輔助設(shè)計(jì)軟件、系統(tǒng)設(shè)計(jì)輔助軟件等三類。采用eda工具軟件進(jìn)行電路設(shè)計(jì),通常需要完成大量的計(jì)算。以fpga為例,需要進(jìn)行設(shè)計(jì)輸入、仿真、綜合、布局布線、驗(yàn)證和模擬電路仿真等一系列的計(jì)算。
隨著市場(chǎng)需求的增長(zhǎng),集成工藝水平的可行性的不斷提高,電路設(shè)計(jì)所需要完成的計(jì)算量成指數(shù)級(jí)增長(zhǎng),因此如何加速電路設(shè)計(jì)成為研究課題。
技術(shù)實(shí)現(xiàn)要素:
在第一方面,本發(fā)明實(shí)施例提供一種計(jì)算架構(gòu)。該計(jì)算架構(gòu)包括pc或服務(wù)器,與fpga模塊;pc或服務(wù)器與fpga模塊互連,pc或服務(wù)器將eda設(shè)計(jì)流程中的部分程序或函數(shù),傳輸?shù)絝pga模塊中執(zhí)行,并且接收fpga模塊返回的執(zhí)行結(jié)果。
優(yōu)選地,pc或服務(wù)器與fpga模塊互連協(xié)議包括以太網(wǎng)、pcle或usb。
優(yōu)選地,fpga模塊包括多個(gè)fpga組成的陣列。
優(yōu)選地,eda設(shè)計(jì)流程是fpga的eda設(shè)計(jì)流程。
優(yōu)選地,部分程序或函數(shù)包括綜合、布局和/或布線中的程序或函數(shù)。
在第二方面,本發(fā)明實(shí)施例提供一種eda設(shè)計(jì)方法。該方法適用于包括pc或服務(wù)器,與fpga模塊的計(jì)算架構(gòu)中;pc或服務(wù)器與fpga模塊互連;所述方法包括:pc或服務(wù)器將eda設(shè)計(jì)流程中的部分程序或函數(shù),傳輸?shù)絝pga模塊中執(zhí)行,并且接收fpga模塊返回的執(zhí)行結(jié)果。
本發(fā)明實(shí)施例提出的計(jì)算架構(gòu)可應(yīng)用于eda工具的軟件流程中,其中eda工具的軟件流程包括綜合、布局和布線等方面的算法計(jì)算和實(shí)現(xiàn),均可采用這種計(jì)算架構(gòu)來加速實(shí)現(xiàn),從而使得eda工具的軟件流程時(shí)間得到大幅的縮短。
附圖說明
圖1示意了本發(fā)明實(shí)施例的一種計(jì)算架構(gòu)。
具體實(shí)施方式
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
本發(fā)明實(shí)施例提出一種計(jì)算架構(gòu),該架構(gòu)包括pc或服務(wù)器和fpga,或多個(gè)fpga組成的陣列的互連。fpga或多個(gè)fpga組成的陣列作為硬件計(jì)算加速協(xié)處理器,對(duì)pc端或服務(wù)器執(zhí)行的程序進(jìn)行并行加速。
圖1示意了本發(fā)明實(shí)施例的一種計(jì)算架構(gòu)。如圖1所示,該計(jì)算架構(gòu)采用pc或服務(wù)器與fpga互連的形式,其中pc或服務(wù)器按傳統(tǒng)方式執(zhí)行軟件流程和程序調(diào)用、控制。在軟件流程中,計(jì)算量較大的程序或函數(shù),可通過pc與fpga互連的協(xié)議傳輸?shù)絝pga中執(zhí)行?;ミB的協(xié)議可以包括但不限于以太網(wǎng)、pcie、usb等協(xié)議。
fpga內(nèi)部含有大量的計(jì)算單元和儲(chǔ)存單元,如專用硬件乘法器和硬件存 儲(chǔ)器,可充分發(fā)揮fpga的并行計(jì)算能力,從而取得極大的硬件加速能力。該計(jì)算架構(gòu)可適用于eda(電子設(shè)計(jì)自動(dòng)化,即electronicdesignautomation)工具軟件流程。eda工具軟件可大致可分為芯片設(shè)計(jì)輔助軟件、可編程芯片輔助設(shè)計(jì)軟件、系統(tǒng)設(shè)計(jì)輔助軟件等三類。
下文以fpga芯片的eda設(shè)計(jì)為例,對(duì)此詳細(xì)說明。
fpga的設(shè)計(jì)流程是利用eda開發(fā)軟件和編程工具對(duì)fpga芯片進(jìn)行開發(fā)的過程。典型fpga的開發(fā)流程包括功能定義/器件選型、設(shè)計(jì)輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實(shí)現(xiàn)、布線后仿真、板級(jí)仿真以及芯片編程與調(diào)試等主要步驟。在圖示的例子中,綜合設(shè)計(jì)流程包括任務(wù)1-任務(wù)n。布局設(shè)計(jì)流程包括任務(wù)1-任務(wù)m。布線流程包括任務(wù)1-l。當(dāng)然,圖示的任務(wù)僅屬舉例而非意圖對(duì)本發(fā)明作出限制。
pc或服務(wù)器在執(zhí)行綜合設(shè)計(jì)流程、布局設(shè)計(jì)流程和/或布線流程時(shí),根據(jù)每個(gè)任務(wù)的計(jì)算復(fù)雜程度,選擇其中的任何一個(gè)或多個(gè)任務(wù)傳送到fpga模塊進(jìn)行并行處理。fpga模塊將這些或這個(gè)任務(wù)編號(hào)為任務(wù)q和/或任務(wù)p,并且進(jìn)行并行計(jì)算。處理后的結(jié)果由fpga回傳至pc或服務(wù)器端,以供其他程序模塊的調(diào)用或比較。這個(gè)或這些任務(wù)可以是綜合設(shè)計(jì)流程中的任務(wù)1-任務(wù)n,布局設(shè)計(jì)流程中的任務(wù)1-任務(wù)m,布線流程中的任務(wù)1-l中的一個(gè),也可以是共同來自綜合設(shè)計(jì)流程中、布局設(shè)計(jì)流程或布線流程某個(gè)流程的不同任務(wù),還可以是分別來自綜合設(shè)計(jì)流程中、布局設(shè)計(jì)流程或布線流程某個(gè)流程的不同任務(wù)。由于fpga自身的并行計(jì)算能力以及其內(nèi)部含有的大量計(jì)算單元和儲(chǔ)存單元,如專用硬件乘法器和硬件存儲(chǔ)器,fpga可極大地加速上述任務(wù)的計(jì)算。
通過采用本發(fā)明實(shí)施例的計(jì)算架構(gòu),和傳統(tǒng)基于純pc環(huán)境的架構(gòu)相比,執(zhí)行時(shí)間會(huì)得到大幅的縮短,因此具有巨大的商業(yè)應(yīng)用價(jià)值。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)意識(shí)到,本發(fā)明不僅僅限于以fpga芯片的eda設(shè)計(jì),本發(fā)明可推而廣之地應(yīng)用到其它的eda設(shè)計(jì)領(lǐng)域。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。