本發(fā)明涉及微電子領(lǐng)域中的集成電路設(shè)計技術(shù)領(lǐng)域,特別是一種輸入輸出端口的工藝映射方法。
背景技術(shù):
現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)是一種具有豐富硬件資源、強大并行處理能力和靈活可重配置能力的邏輯器件。這些特征使得FPGA在數(shù)據(jù)處理、通信、網(wǎng)絡(luò)等很多領(lǐng)域得到了越來越多的廣泛應(yīng)用。
現(xiàn)有技術(shù)中,一款FPGA架構(gòu)中會有多種不同的輸入輸出端口,而架構(gòu)迭代更新時,這些端口的特性也經(jīng)常發(fā)生變化,在傳統(tǒng)的工藝映射流程中,不得不花費大量時間來完成對每款架構(gòu)的每種類型的輸入輸出端口的工藝映射。如圖1所示,用戶針對輸入輸出端口(Input/output,I/0)的物理約束發(fā)生在邏輯綜合和工藝映射之后,當(dāng)步驟S104中用戶需要對I/O端口進行物理約束時,需要針對I/O端口重新進行邏輯綜合和工藝映射。
因此,如何找到一種通用的針對I/O端口的工藝映射流程并且能快速地支持不同架構(gòu)不同類型輸入輸出端口,進而縮短I/O端口的工藝映射時間,成為亟待解決的問題。
技術(shù)實現(xiàn)要素:
本申請的目的是針對現(xiàn)有技術(shù)的缺陷,提供了一種輸入輸出端口的工藝映射方法,該方法能夠縮短I/O端口的工藝映射時間。
本申請?zhí)峁┮环N輸入輸出端口的工藝映射方法,所述方法包括:用戶設(shè)計輸入;預(yù)提取所述用戶設(shè)計中輸入輸出的端口信息;將所述用戶設(shè)計轉(zhuǎn)換為門級網(wǎng)表;建立所述輸入輸出端口的通用模型;在所述通用模型上,進行所述門級網(wǎng)表的工藝映射。
在第一種可能實現(xiàn)的方式中,所述方法還包括:根據(jù)預(yù)提取的所述輸入輸出的端口信息,判斷用戶是否對輸入輸出端口進行物理約束;若用戶對輸入輸出端口進行物理約束,則生成輸入輸出端口的物理約束文件。
在第二種可能實現(xiàn)的方式中,所述在所述通用模型上,進行所述門級網(wǎng)表的工藝映射包括:根據(jù)所述物理約束文件中的物理約束,進行所述門級網(wǎng)表的工藝映射。
在第三種可能實現(xiàn)的方式中,所述物理約束包括所述用戶設(shè)計中的快速輸入輸出信息。
在第四種可能實現(xiàn)的方式中,所述輸入輸出端口的通用模型包括物理管腳、數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口、數(shù)據(jù)輸出使能端口、輸入寄存器、輸出寄存器、輸出使能寄存器、快速輸入配置位、快速輸出配置位、快速輸出使能配置位。
本申請通過預(yù)提取用戶設(shè)計中輸入輸出的端口信息,提前對用戶設(shè)計中的I/O物理約束進行處理,極大縮短了I/O端口的工藝映射時間,進而極大的提高了用戶開發(fā)流程的效率。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中的一種輸入輸出端口的工藝映射方法流程示意圖;
圖2為本發(fā)明實施例中的一種輸入輸出端口的工藝映射方法流程示意圖;
圖3為本發(fā)明實施例中的一種輸入輸出端口的工藝映射方法流程示意圖;
圖4為本發(fā)明實施例提供的一種通用輸入輸出模型結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。
下面以圖1為例,對現(xiàn)有技術(shù)中的輸入輸出端口工藝映射流程進行說明。圖1為現(xiàn)有技術(shù)中的一種輸入輸出端口的工藝映射方法流程示意圖。
如圖1所示,該方法包括步驟S101-S104。S101,通過硬件描述語言(Hardware Description Language,HDL),將用戶設(shè)計輸入;S102,邏輯綜合,編譯器將HDL用戶設(shè)計輸入轉(zhuǎn)換為門級網(wǎng)表的過程;S103,工藝映射,將門級網(wǎng)表中的邏輯單元、邏輯單元的所有端口以及端口的連線信息映射在FPGA芯片中的邏輯資源和繞線資源上;S104,判斷用戶是否對輸入輸出端口I/O進行物理約束,若有,則重新回到步驟S102,進行邏輯綜合;若沒有,則對映射后的門級網(wǎng)表進行布局;步驟S105,對完成映射后的時序邏輯和組合邏輯進行布局。
現(xiàn)有的輸入輸出端口的映射流程中,完成邏輯綜合和工藝映射之后,才判斷用戶是否對I/O進行物理約束。當(dāng)判斷用戶需要進行物理約束時,需要重新進行邏輯綜合和工藝映射的過程,極大的影響了用戶開發(fā)流程的效率。
需要說明的是,邏輯綜合是指將用戶設(shè)計輸入,用編譯器,編譯成由與門、或門、非門、隨機存取存儲器(Random Access Memory,RAM)、觸發(fā)器等基本邏輯單元、邏輯單元端口以及端口的連線信息組成的門級網(wǎng)表。工藝映射,是指將門級網(wǎng)表的邏輯單元、邏輯單元端口及其連線信息映射到FPGA的繞線資源模塊和邏輯資源中。布局是用布局算法,如模擬退火算法,對組合邏輯單元和時序邏輯單元進行布局。FPGA的邏輯資源包括寄存器和查找表;繞線資源包括xbar繞線資源。
下面以圖2為例,與圖1對照,對本發(fā)明實施例的輸入輸出端口的流程進行說明。圖2為本發(fā)明實施例提供的一種輸入輸出端口的工藝映射方法流程示意圖。該方法包括步驟S201-S207。
S201,通過硬件描述語言HDL進行用戶設(shè)計輸入。
S202,端口預(yù)提取。
針對用戶設(shè)計輸入,通過語法解析器HDL設(shè)計的層級信息,并且解析出頂層設(shè)計的輸入輸出端口的信息。
預(yù)先提取輸入輸出端口的信息,可以優(yōu)先處理用戶對輸入輸出端口的物理約束,而不用在邏輯綜合和工藝映射之后,再根據(jù)用戶的物理約束進行第二次映射,進而極大地提高了用戶開發(fā)流程的效率。
S203,判斷用戶是否對I/O進行物理約束。
根據(jù)預(yù)提取的輸入輸出端口信息,判斷輸入輸出端口信息中是否有用戶的物理約束。用戶的物理約束,如:快速輸入輸出。
若用戶對I/O進行了物理約束,則執(zhí)行步驟S204。
S204,生成I/O的物理約束文件。
當(dāng)判斷用戶對I/O進行物理約束,生成I/O的物理約束文件。
此時,生成的I/O物理約束文件是作為步驟S207工藝映射過程中的一個輸入文件。且該I/O物理約束文件本身并不進行邏輯綜合,但用戶的HDL設(shè)計就仍然需要進行邏輯綜合了,也就是執(zhí)行步驟S205。
也就是說,無論用戶設(shè)計中是否存在對I/O的物理約束,HDL設(shè)計都要進行邏輯綜合。
邏輯綜合結(jié)束后,進行工藝映射。如圖2中所示,工藝映射被分為兩步,第一步,建立通用I/O模型,即步驟S206;第二步,做具體類型I/O的工藝映射,即步驟S207。在步驟S207中,會用生成的所述I/O物理約束文件進行映射,此時,所述I/O物理約束文件相當(dāng)于一個外部的輸入文件。I/O物理約束文件的后綴名包括.aoc。
S205,邏輯綜合。
需要說明的是,無論步驟S203中,用戶是否對I/O進行物理約束,都需要對HDL用編譯器進行編譯,將用戶設(shè)計輸入轉(zhuǎn)換為門級網(wǎng)表。
S206,通用I/O模型的建立。
建立通用的I/O模型,如圖4所示,該模型包括各種類型I/O的通用特性,包括物理管腳PAD、數(shù)據(jù)輸入輸出端口id、數(shù)據(jù)輸出端口od、數(shù)據(jù)輸出使能端口oe、輸入寄存器、輸出寄存器、輸出使能寄存器、快速輸入配置位fast_in、快速輸出配置位fast_out、快速輸出使能配置位fast_oe。
S207,具體類型I/O的工藝映射。
工藝映射就是在上述通用模型上,進行上述門級網(wǎng)表的工藝映射。也就是,需要將通用的I/O模型映射到具體架構(gòu)的具體類型的I/O上,而針對不同架構(gòu)的不同類型的I/O的工藝映射過程,只需要根據(jù)具體I/O的特性重寫這部分算法即可。當(dāng)用戶對I/O進行了物理約束時,生成了I/O的物理約束文件;在進行工藝映射時,需要滿足物理約束文件中的物理約束進行映射。由于在通用模型上已經(jīng)進行了快速輸入輸出的映射,故對于快速輸入輸出這種物理上的約束則不需要重寫映射算法。
FPGA架構(gòu),如:Xilinx的V5系列、V7系列。具體類型的I/O包括:普通I/O、時鐘I/O,雙倍速率同步動態(tài)隨機存儲器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM)I/O,還有硬IP核的專用I/O等。
用戶對于I/O的物理位置的約束在將通用I/O模型映射為具體類型I/O時,可以更好地確定I/O的類型,映射過程可以更準(zhǔn)確的滿足用戶的布局需求。
S208,布局。對完成工藝映射后的通用I/O模型,進行布局。
圖3為本發(fā)明實施例提供的一種輸入輸出端口的工藝映射方法流程示意圖,如圖3所示,該方法包括S301-S306。
S301,用戶設(shè)計輸入。
S302,預(yù)提取所述用戶設(shè)計中輸入輸出的端口信息。
S303,根據(jù)預(yù)提取的所述輸入輸出的端口信息,判斷用戶是否對輸入輸出端口進行物理約束。
在上述方法中,所述物理約束包括所述用戶設(shè)計中的快速輸入輸出信息。例如:若提取的輸入輸出端口信息中有快速輸入輸出信息,則判斷用戶對輸入端口進行了物理約束。物理約束還包括位置信息,本發(fā)明實施例對此并不限定。
S304,若用戶對輸入輸出端口進行物理約束,則生成輸入輸出端口的物理約束文件。
需要說明的是,在步驟S307中,根據(jù)該輸入輸出端口的物理約束文件,進行門級網(wǎng)表的工藝映射。
當(dāng)判斷用戶對輸入輸出端口進行了物理約束時,生成的物理約束文件,其本身不需要進行邏輯綜合,即執(zhí)行S304。但是針對用戶設(shè)計仍然需要進行邏輯綜合,故S304后,需要執(zhí)行S305。
S305,將所述用戶設(shè)計轉(zhuǎn)換為門級網(wǎng)表。
此時,無論用戶是否對輸入輸出端口進行物理約束,都需要將所述用戶設(shè)計轉(zhuǎn)換為門級網(wǎng)表。
S306,建立所述輸入輸出端口的通用模型。
在上述方法中,所述輸入輸出端口的通用模型包括物理管腳、數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口、數(shù)據(jù)輸出使能端口、輸入寄存器、輸出寄存器、輸出使能寄存器、快速輸入配置位、快速輸出配置位、快速輸出使能配置位。
需要說明的是,建立輸入輸出端口的通用模型可以單獨進行,也就是在進行門級網(wǎng)表的工藝映射時,直接在所述通用模型上進行門級網(wǎng)表的工藝映射;也可以在對門級網(wǎng)表進行工藝映射時,先建立輸入輸出端口模型,然后進行具體門級網(wǎng)表的工藝映射。
S307,在所述通用模型上,進行所述門級網(wǎng)表的工藝映射。
此時,上述步驟S303的判斷中,判斷用戶設(shè)計中存在輸入輸出端口的物理約束文件,則需要根據(jù)所述輸入輸出端口的物理約束文件,進行門級網(wǎng)表的工藝映射。也就是說,在進行門級網(wǎng)表的工藝映射的同時,需要滿足所述輸入輸出端口的物理約束文件中的物理約束。
S308,布局。
本發(fā)明通過一種通用的針對I/O的工藝映射流程,縮短了I/O端口的工藝映射時間,進而極大的提高了用戶開發(fā)流程的效率。
專業(yè)人員應(yīng)該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。