楊 釗,楊 萌,來(lái)金梅
(復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,上海 201203)
現(xiàn)代的現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array, FPGA)是由可編程邏輯塊(Configurable Logic Block, CLB)、知識(shí)產(chǎn)權(quán)核(Intellectual Property Core, IP Core)、輸入輸出單元(Input/Output, I/O)和可編程互聯(lián)等組成.FPGA具有電路可重配置、開(kāi)發(fā)周期短、可靠性高、成本低等優(yōu)點(diǎn),因此廣泛應(yīng)用于民用通信、自動(dòng)控制和信息處理等諸多領(lǐng)域.FPGA的計(jì)算機(jī)輔助設(shè)計(jì)(Computer Aided Design, CAD)工具流程主要包括邏輯綜合、打包、布局、布線,其中打包是將邏輯綜合后的網(wǎng)表映射到FPGA的邏輯單元中,這對(duì)布局和布線后的網(wǎng)表在時(shí)序、面積等方面的結(jié)果有很大的影響.
CLB是FPGA芯片中數(shù)量最多,使用最廣泛的邏輯單元,它可以用于實(shí)現(xiàn)邏輯函數(shù)也可以用于存儲(chǔ)數(shù)據(jù).隨著市場(chǎng)需求和技術(shù)的發(fā)展,CLB的功能越來(lái)越豐富,同時(shí)CLB內(nèi)部的連線結(jié)構(gòu)也越來(lái)越復(fù)雜,這對(duì)和CLB內(nèi)部結(jié)構(gòu)緊密相關(guān)的打包工具提出了更大的挑戰(zhàn): 如何處理復(fù)雜多變的連線結(jié)構(gòu).針對(duì)這樣的挑戰(zhàn),文獻(xiàn)[1]提出為邏輯塊能夠?qū)崿F(xiàn)的所有電路建立模型,然后在用戶網(wǎng)表中匹配和這些模型一致的電路并完成映射.但是該方法也存在問(wèn)題: 在打包過(guò)程中,很難實(shí)現(xiàn)根據(jù)特定的優(yōu)化目標(biāo)比如面積或者時(shí)序決定打包的結(jié)果.開(kāi)源CAD工具VTR[2-3]的打包階段[4]也很好地迎接了這個(gè)挑戰(zhàn),它能夠有效地處理邏輯塊內(nèi)部各種復(fù)雜的連線結(jié)構(gòu),同時(shí)避開(kāi)了文獻(xiàn)[1]中的問(wèn)題,但是也引入了新的問(wèn)題: 運(yùn)行時(shí)間顯著增長(zhǎng).這是因?yàn)闉榱四軌蛱幚磉壿媺K內(nèi)部各種復(fù)雜的連線結(jié)構(gòu),打包階段[4]的算法預(yù)留了很大的靈活性,同時(shí)采用耗費(fèi)時(shí)間的連線合法性檢查來(lái)確保映射結(jié)果在連線方面的正確性.
針對(duì)打包階段[4]運(yùn)行時(shí)間長(zhǎng)的問(wèn)題,本文中提出了一種適用范圍廣泛的減少運(yùn)行時(shí)間的方法,該方法優(yōu)先判斷CLB內(nèi)部的共享線網(wǎng)處的映射是否合法,從而避免不必要的連線合法性檢查,達(dá)到減少整體運(yùn)行時(shí)間的目的.把該方法集成到最新的VTR7.0[2]的打包階段中,實(shí)驗(yàn)結(jié)果表明打包在運(yùn)行時(shí)間方面實(shí)現(xiàn)了1.83倍的加速,同時(shí)輸出結(jié)果在時(shí)序面積等方面的質(zhì)量保持不變.
和文獻(xiàn)[4]一樣,我們將用戶網(wǎng)表中具有邏輯功能的最小單元稱為atom,將FPGA中邏輯塊內(nèi)部具有邏輯功能的物理單元稱為primitive.打包工具的功能是將atom映射到primitive上,并保證映射結(jié)果在連線結(jié)構(gòu)上合法和優(yōu)化時(shí)序面積等多個(gè)目標(biāo).為了能夠處理邏輯塊內(nèi)部日益復(fù)雜的連線結(jié)構(gòu),文獻(xiàn)[4]在已有工作[1]的基礎(chǔ)上提出了一種能夠適應(yīng)FPGA上各種邏輯塊內(nèi)部結(jié)構(gòu)的打包方法—AAPack,該方法集成在早期版本的VTR[3]的打包階段中.AAPack打包方法采用貪婪算法和迭代方式將用戶網(wǎng)表中的atom一個(gè)一個(gè)地映射到邏輯塊內(nèi)部的primitive上,同時(shí)利用和文獻(xiàn)[5]中一致的方法確保每次映射的結(jié)果在邏輯塊內(nèi)部連線上是合法的,即采用pathfinder算法檢查每次映射結(jié)果在連線上的合法性.但是,依賴于pathfinder算法的連線合法性檢查使打包工具產(chǎn)生了新的問(wèn)題: 運(yùn)行速度相比以前的打包工具T-VPack[6]慢了至少兩個(gè)數(shù)量級(jí)[7].為了解決運(yùn)行速度慢引發(fā)的運(yùn)行時(shí)間長(zhǎng)的問(wèn)題,文獻(xiàn)[7]提出3種提高AAPack打包方法運(yùn)行速度的方法: 首先是考慮連線結(jié)構(gòu)的pin計(jì)數(shù)方法(Interconnect-aware Pin Counting): 在把a(bǔ)tom映射到primitive的過(guò)程中,利用簡(jiǎn)單的統(tǒng)計(jì)pin數(shù)量的方法代替復(fù)雜的pathfinder算法,快速判斷出不合法的映射結(jié)果,但是該方法只能判斷出部分不合法的映射;其次是投機(jī)打包方法(Speculative Packing),在邏輯塊沒(méi)有滿時(shí),只采用pin計(jì)數(shù)方法確保映射結(jié)果在連線方面的合法性,在邏輯塊滿后,才采用pathfinder算法進(jìn)行邏輯塊整體的連線合法性檢查;最后是預(yù)打包(Pre-packing),通過(guò)預(yù)先將固定打包在一起的atom標(biāo)記為一個(gè)整體,以減少處理的網(wǎng)表的規(guī)模.這3種方法都已經(jīng)集成到新版本的VTR7.0[2]中.實(shí)驗(yàn)數(shù)據(jù)[7]顯示這些方法使AAPack打包方法的運(yùn)行速度提升12倍,同時(shí)使打包結(jié)果在布局布線后的最小通道寬度減少20%和關(guān)鍵路徑延時(shí)減少6%.然而,AAPack打包方法運(yùn)行時(shí)間依然較長(zhǎng),還有必要繼續(xù)考慮減少其運(yùn)行時(shí)間.
在CLB內(nèi)部結(jié)構(gòu)逐漸復(fù)雜的過(guò)程中,為了同時(shí)獲得輸入多的查找表(Look Up Table, LUT)在延時(shí)方面的優(yōu)勢(shì)和輸入少的LUT在面積方面的優(yōu)勢(shì),引入了可拆分查找表(Fracturable Look Up Table, F-LUT)[8].F-LUT有2種配置模式,即可以用于實(shí)現(xiàn)1個(gè)輸入多的LUT,也可以用于實(shí)現(xiàn)2個(gè)輸入少的LUT.圖1(a)是包含F(xiàn)-LUT的CLB的結(jié)構(gòu)示意圖,它由crossbar和1組可拆分邏輯單元(Fracturable Logic Element, F-LE)構(gòu)成,同時(shí)圖1(b)表示的是F-LE的內(nèi)部結(jié)構(gòu),它由1個(gè)F-LUT和2個(gè)可以被旁路的觸發(fā)器(Flip Flop, FF)構(gòu)成.Crossbar提供局部的連接關(guān)系,連接F-LE的輸出反饋和CLB的輸入到F-LE的輸入.
圖2顯示了圖1(b)中F-LUT的2種配置模式: 圖2(a)表示的是配置為1個(gè)6-LUT,用到6個(gè)輸入和1個(gè)輸出O6;圖2(b)表示的是配置為2個(gè)5-LUT,用到5個(gè)共享的輸入和2個(gè)輸出O5、O6.在打包的過(guò)程中可以根據(jù)需要配置F-LUT為哪一種模式.
圖1 CLB結(jié)構(gòu)示意圖Fig.1 Diagram of CLB architecture
圖2 F-LUT的2種配置模式Fig.2 Two modes of F-LUT
目前,F(xiàn)-LUT結(jié)構(gòu)被廣泛應(yīng)用于商業(yè)FPGA中,比如Xilinx的Virtex5,Virtex6,Virtex7,Altera公司的Stratix Ⅳ,Stratix Ⅴ.可以看出,在FPGA硬件結(jié)構(gòu)逐漸復(fù)雜的趨勢(shì)中,F(xiàn)-LUT因其獨(dú)有的特點(diǎn)和優(yōu)勢(shì)受到商業(yè)FPGA的青睞.
CLB內(nèi)部的連線結(jié)構(gòu)有多種特點(diǎn),但是這里我們只講解和減少運(yùn)行時(shí)間相關(guān)的特點(diǎn)—共享線網(wǎng).隨著CLB的內(nèi)部結(jié)構(gòu)越來(lái)越復(fù)雜,特別是F-LUT的引入,共享線網(wǎng)特征變得越來(lái)越明顯,如圖2(b)中的2個(gè)5-LUT共享5條線網(wǎng).在打包過(guò)程中,為了減少打包結(jié)果用到的CLB的數(shù)量,會(huì)盡可能將F-LUT配置為圖2(b)的共享線網(wǎng)的模式,這使得CLB內(nèi)部的連線結(jié)構(gòu)復(fù)雜化,大大增加了打包工具處理過(guò)程中映射不合法的概率.
圖3 將atom打包到CLB部分的偽代碼Fig.3 Pseudo code of packing atom to CLB
檢查映射結(jié)果在CLB內(nèi)部連線結(jié)構(gòu)上是否合法是打包工具中很重要的一步,同時(shí)也是很耗費(fèi)時(shí)間的一步[7].然而,CLB內(nèi)部共享線網(wǎng)的存在大大增加了打包過(guò)程中映射不合法的概率,使得連線合法性檢查失敗的次數(shù)大大增加,增加了打包工具的運(yùn)行時(shí)間.于是,我們從共享線網(wǎng)自身的特點(diǎn)出發(fā),考慮減少打包運(yùn)行時(shí)間的方法.如果CLB內(nèi)部整體的連線合法性檢查通過(guò),則映射在局部共享線網(wǎng)的地方連線是合法的;反過(guò)來(lái),如果映射在局部共享線網(wǎng)的地方連線是不合法的,則整體的連線合法性檢查必定會(huì)失敗.于是,我們考慮利用共享線網(wǎng)快速判斷出不合法的映射,從而避免檢查結(jié)果是失敗的連線合法性檢查,達(dá)到減少連線合法性檢查次數(shù)的目的,進(jìn)而減少打包工具整體的運(yùn)行時(shí)間.
圖3~圖5是我們減少運(yùn)行時(shí)間方法的偽代碼.圖3是將名字為c的atom映射到名字為B的CLB中的函數(shù)模塊的偽代碼,我們?cè)贏APack[4]中對(duì)應(yīng)函數(shù)模塊的基礎(chǔ)上添加了利用共享線網(wǎng)減少運(yùn)行時(shí)間的方法.具體添加2個(gè)函數(shù)模塊: 在進(jìn)行CLB整體的連線合法性檢查(圖3第4行)前,添加判斷映射在局部共享線網(wǎng)處的連線是否合法的函數(shù)模塊(圖3第3行);更新primitive約束的函數(shù)模塊(圖3第7行).圖4是更新primitive約束的函數(shù)模塊的詳細(xì)偽代碼,圖5是判斷共享線網(wǎng)的地方連線是否合法的詳細(xì)偽代碼.
圖4 更新primitive約束部分的偽代碼Fig.4 Pseudo code of updating constrains of primitive
圖5 Primitive的約束滿足性判斷部分的偽代碼Fig.5 Pseudo code of satisfing constraints of primitive
利用共享線網(wǎng)特點(diǎn)減少運(yùn)行時(shí)間的方法分為兩部分: 第一部分,更新primitive的約束,每一條約束都記錄著一條被共享的線網(wǎng)的信息.剛創(chuàng)建好的CLB內(nèi)部的primitive約束為零,當(dāng)嘗試把一個(gè)atom映射到primitive上而連線合法性檢查失敗時(shí),我們就認(rèn)為該primitive與其他primitive共享的線網(wǎng)已經(jīng)被占用,我們把與該線網(wǎng)相關(guān)的信息記錄下來(lái)保存在primitive上,作為primitive的約束信息.圖4展示了更新名字為p的primitive約束信息的詳細(xì)過(guò)程,先清空p的全部約束信息,然后遍歷p的輸入輸出pin,把和其他primitive共享并且已經(jīng)被先打包的atom占用的線網(wǎng)信息記錄下來(lái)作為一條約束.另外,當(dāng)primitive的多個(gè)pin在邏輯上等效時(shí),需要將多個(gè)pin上的net信息記錄在一條約束中考慮,比如LUT的輸入pin.第二部分,判斷是否滿足約束.當(dāng)把a(bǔ)tom映射到含有約束的primitive上時(shí),優(yōu)先判斷atom是否滿足primitive的約束,如果不滿足約束,則意味著映射在連線結(jié)構(gòu)上將會(huì)不合法,就不必進(jìn)行隨后的連線合法性檢查;如果滿足約束,則映射在連線結(jié)構(gòu)上可能合法也可能不合法,還需要進(jìn)行后面的連線合法性檢查.判斷的具體過(guò)程如圖5的偽代碼所示,遍歷名字為p的primitive的每一條約束,根據(jù)約束記錄的線網(wǎng)的信息恢復(fù)共享線網(wǎng)的地方,然后判斷該名字為c的atom需要的線網(wǎng)資源是否超過(guò)了該處線網(wǎng)能夠提供的資源,若超過(guò)了則不滿足,若沒(méi)有超過(guò)則滿足.
圖6 部分打包的F-LEFig.6 Partial packed F-LE
舉例說(shuō)明,圖6表示CLB中一個(gè)已經(jīng)完成部分打包的F-LE,F(xiàn)-LE中的F-LUT配置為2個(gè)5-LUT類別的primitive,分別是LUT0和LUT1.圖中粗線表示已經(jīng)完成打包的primitive和被占用的線網(wǎng)資源.然后把LUT類別的atom映射到LUT1上并且進(jìn)行CLB內(nèi)部的連線合法性檢查,如果檢查失敗,我們就把連線合法性檢查過(guò)程中與LUT1有關(guān)的信息保存在LUT1上,包括LUT1與LUT0共享的且已經(jīng)被占用的3條線網(wǎng)的實(shí)際名字、3條線網(wǎng)與LUT1相連的pin的名字.當(dāng)下一次嘗試把新的LUT類別的atom打包到LUT1上時(shí),我們根據(jù)前面保存的線網(wǎng)信息恢復(fù)共享線網(wǎng)的位置,優(yōu)先判斷新的LUT能否滿足該處線網(wǎng)資源的限制(即LUT1中剩余的未占用的線網(wǎng)能否滿足atom的輸入需要的線網(wǎng)數(shù)),如果滿足,則進(jìn)入隨后針對(duì)整個(gè)CLB的連線合法性檢查,如果不滿足,意味著共享線網(wǎng)地方的連線將不合法,則不用再進(jìn)行隨后的整個(gè)CLB的連線合法性檢查,從而減少連線合法性檢查的次數(shù),進(jìn)而減少整體的運(yùn)行時(shí)間.
本節(jié)測(cè)試了利用共享線網(wǎng)減少運(yùn)行時(shí)間方法對(duì)打包工具運(yùn)行時(shí)間和布局布線后輸出結(jié)果質(zhì)量的影響.我們采用的測(cè)試平臺(tái)是VTR7.0[2,9].我們把在VTR7.0上集成了利用共享線網(wǎng)減少運(yùn)行時(shí)間的打包算法稱為S-AAPack,把VTR7.0中原本的打包算法稱為AAPack7.0.為了簡(jiǎn)化處理過(guò)程,在建立primitive的約束時(shí),我們只考慮了與輸入pin共享的線網(wǎng),沒(méi)有考慮與輸出pin共享的線網(wǎng).
圖7 測(cè)試所用CAD流程Fig.7 The experimental CAD flow
我們采用的CAD流程如圖7所示.該流程的輸入文件包括邏輯綜合后的blif格式的測(cè)試?yán)雍虵PGA的硬件結(jié)構(gòu)描述文件.先采用S-AAPack或者AAPack7.0完成打包,然后采用VPR7.0的布局和布線工具完成布局和布線,最后統(tǒng)計(jì)打包階段的運(yùn)行時(shí)間和布線后輸出結(jié)果中與面積、延時(shí)相關(guān)的信息.VPR7.0的設(shè)置都采用默認(rèn)值[10].
我們采用了和文獻(xiàn)[7]一致的測(cè)試?yán)雍虵PGA結(jié)構(gòu)描述文件,這些測(cè)試?yán)雍臀募梢栽赩TR7.0[2,9]的工程中獲得.這些測(cè)試?yán)觼?lái)自于一系列不同的應(yīng)用場(chǎng)景包括計(jì)算機(jī)視覺(jué)、醫(yī)療、數(shù)學(xué)等,同時(shí)其規(guī)模覆蓋范圍廣泛.FPGA硬件結(jié)構(gòu)文件的名字是k6_frac_N10_frac_chain_mem32K_40nm,包含的CLB是從Altera Stratix Ⅳ[11]FPGA簡(jiǎn)化而來(lái).CLB內(nèi)部的具體結(jié)構(gòu)如圖1和圖2所示.
測(cè)試采用的計(jì)算機(jī)是Intel i7-4790k處理器,運(yùn)行頻率為4.00GHz.每個(gè)處理器包含4核,有4×256KB的二級(jí)緩存.機(jī)器上共有16GB的內(nèi)存.
我們統(tǒng)計(jì)的數(shù)據(jù)包括打包階段的運(yùn)行時(shí)間、打包輸出結(jié)果中和最終面積緊密相關(guān)的CLB數(shù)量,及布局布線后輸出結(jié)果的最小通道寬度、邏輯塊間需要布線的線網(wǎng)數(shù)量、與時(shí)序相關(guān)的關(guān)鍵路徑延時(shí).
表1展示的是用測(cè)試CAD流程獲得的19個(gè)測(cè)試?yán)拥臄?shù)據(jù)結(jié)果,這些例子的運(yùn)行時(shí)間從零點(diǎn)幾秒到上百秒,占用CLB的數(shù)量從幾十到上千個(gè),顯示了測(cè)試?yán)拥囊?guī)模變化范圍廣.表2展示的是AAPack7.0的測(cè)試結(jié)果與S-AAPack的測(cè)試結(jié)果的比值(RAAPack7.0/S-AAPack).可以看出,在打包階段的運(yùn)行時(shí)間方面,S-AAPack比AAPack7.0快1.83倍,而在CLB數(shù)量、通道寬度、外部線網(wǎng)數(shù)量和關(guān)鍵路徑延時(shí)方面,S-AAPack和AAPack7.0的比值為1.00,說(shuō)明兩者保持一致.我們進(jìn)一步用自動(dòng)化程序比對(duì)了19個(gè)測(cè)試?yán)佑脙煞N方法處理后輸出的網(wǎng)表文件,發(fā)現(xiàn)兩者是一致的,這說(shuō)明在功能方面S-AAPack處理后的結(jié)果也和AAPack7.0處理后的結(jié)果保持一致.表2反映的結(jié)果是符合預(yù)期的,因?yàn)槔霉蚕砭€網(wǎng)減少運(yùn)行時(shí)間的方法,只是快速判斷出不合法的映射,避免進(jìn)行耗費(fèi)時(shí)間的連線合法性檢查,這并不影響打包過(guò)程中atom到primitive的映射過(guò)程,進(jìn)而不改變打包的輸出結(jié)果,最后也不改變布局布線后網(wǎng)表在面積、時(shí)序等方面的結(jié)果.總結(jié)下來(lái),利用共享線網(wǎng)減少運(yùn)行時(shí)間的方法具有優(yōu)越性: 只減少打包工具的運(yùn)行時(shí)間,不改變打包工具的輸出結(jié)果.
表1 采用S-AAPack或者AAPack7.0的CAD流程的19個(gè)測(cè)試?yán)拥臄?shù)據(jù)結(jié)果
從表2中,我們還可看出測(cè)試?yán)拥募铀俦炔▌?dòng)較大,從幾乎沒(méi)有加速的1.01(測(cè)試?yán)觭tereovision3)到大幅加速的4.05(測(cè)試?yán)觭ha).這是因?yàn)槔霉蚕砭€網(wǎng)減少運(yùn)行時(shí)間方法的加速比和連線合法性檢查失敗的次數(shù)與整個(gè)檢查次數(shù)中的比例緊密相關(guān): 占的比例越大,減少的運(yùn)行時(shí)間越多,加速比也就越大.在極端情況下,如果測(cè)試?yán)雍?jiǎn)單連線合法性檢查失敗次數(shù)所占的比例接近于零,則加速比有可能小于1.00,這是因?yàn)楦录s束和約束滿足判斷花費(fèi)的時(shí)間有可能超過(guò)連線合法性檢查失敗所花費(fèi)的時(shí)間,例子stereovision3已經(jīng)比較接近這種情況了.而在實(shí)際情況中由于電路功能多、結(jié)構(gòu)復(fù)雜,連線合法性檢查失敗次數(shù)所占的比例往往較高,此時(shí)加速的效果明顯.
表2 AAPack7.0算法結(jié)果與S-AAPack算法結(jié)果的比值
(續(xù)表)
本文提出了一種利用FPGA中CLB內(nèi)部的共享線網(wǎng)減少打包階段運(yùn)行時(shí)間的方法,該方法利用共享線網(wǎng)快速判斷出不合法的映射,從而避免整體的連線合法性檢查,達(dá)到減少運(yùn)行時(shí)間的目的;該方法減少的運(yùn)行時(shí)間和連線合法性檢查失敗的次數(shù)與整個(gè)檢查次數(shù)中的比例緊密相關(guān),比例越高,運(yùn)行時(shí)間減少越明顯.測(cè)試?yán)拥臄?shù)據(jù)顯示,與最新的VTR7.0[2]相比,該方法實(shí)現(xiàn)了打包階段1.83倍的加速,同時(shí)保持其輸出結(jié)果在面積、時(shí)序等方面的性能不變.
參考文獻(xiàn):
[1] NI G, TONG J, LAI J. A new FPGA packing algorithm based on the modeling method for logic block [C]∥2005 6th International Conference on ASIC. Antwerp, Belgium: IEEE Press, 2005,2: 877-880.
[2] LUU J, GOEDERS J, WAINBERG M, et al. VTR 7.0: Next generation architecture and CAD system for FPGAs [J].ACMTransactionsonReconfigurableTechnologyandSystems(TRETS), 2014,7(2): 6.
[3] ROSE J, LUU J, YU C W, et al. The VTR project: Architecture and CAD for FPGAs from verilog to routing [C]∥Proceedings of the ACM/SIGDA international symposium on Field Programmable Gate Arrays. Monterey, California, USA: ACM, 2012: 77-86.
[4] LUU J, ANDERSON J H, ROSE J S. Architecture description and packing for logic blocks with hierarchy, modes and complex interconnect [C]∥Proceedings of the 19th ACM/SIGDA international symposium on field programmable gate arrays. Monterey, California, USA: ACM, 2011: 227-236.
[5] SHARMA A, HAUCK S, EBELING C. Architecture-adaptive routability-driven placement for FPGAs [C]∥International Conference on Field Programmable Logic and Applications, 2005. Tampere, Finland: IEEE Press, 2005: 427-432.
[6] MARQUARDT A S, BETZ V, ROSE J. Using cluster-based logic blocks and timing-driven packing to improve FPGA speed and density [C]∥Proceedings of the 1999 ACM/SIGDA seventh international symposium on Field programmable gate arrays. Monterey, CA, USA: ACM, 1999: 37-46.
[7] LUU J, ROSE J, ANDERSON J. Towards interconnect-adaptive packing for FPGAs [C]∥Proceedings of the 2014 ACM/SIGDA international symposium on Field-programmable gate arrays. Monterey, CA, USA: ACM, 2014: 21-30.
[8] HUTTON M, SCHLEICHER J, LEWIS D, et al. Improving FPGA performance and area using an adaptive logic module [C]∥International Conference on Field Programmable Logic and Applications. Antwerp, Belgium: Springer Berlin Heidelberg, 2004: 135-144.
[9] LUU J, GOEDERS J, WAINBERG M, et al. Verilog-to-Routing 7.0[EB/OL]. https:∥github.com/verilog-to-routing/vtr-verilog-to-routing, 2016.
[10] LUU J, GOEDERS J, LIU T, et al. VPR User’s Manual.http:∥venividiwiki.ee.virginia.edu/mediawiki/images/61601/VPR_User_Manual_6.0.pdf,2013.
[11] Altera Corporation. Stratix Ⅳ Device Family Overview[EB/OL]. http:∥www.altera.com/literature/hb/stratix-iv/stx4_siv51001.pdf, November 2009.