增量式編譯QIC大幅縮短FPGA編譯時(shí)間
前言
本文引用地址:http://butianyuan.cn/article/189670.htm按照相對(duì)論的理論,時(shí)間也是可以被拉長(zhǎng)縮短的,只不過(guò)需要巨大的能量支撐著您達(dá)到一個(gè)和光速可比擬的高速度而已。這話說(shuō)著輕松,你我心里都明白,估計(jì)咱們的有生之年是看不到這樣的情景的……
回到可編程邏輯器件領(lǐng)域,隨著65nm、40nm,乃至目前的28nm深亞微米工藝的采用,廠家生產(chǎn)出了越來(lái)越大,也越來(lái)越復(fù)雜的FPGA器件。而用戶(hù)們?cè)跒?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/FPGA">FPGA不斷增強(qiáng)的功能和不斷下降的單位成本而欣喜不已的同時(shí),也在為相關(guān)EDA軟件的性能滯后所帶來(lái)的開(kāi)發(fā)效率相對(duì)降低而苦惱不已,尤其是對(duì)大容量FPGA芯片動(dòng)輒10到20個(gè)小時(shí)的編譯時(shí)間可謂怨氣沖天。筆者在許多次面對(duì)一線的FPGA工程師時(shí),都聽(tīng)到了這樣類(lèi)似的話:要是編譯時(shí)間能壓一壓就好了!
Altera不能真的壓縮時(shí)間,但我們能改變“速度”!從數(shù)年前的版本開(kāi)始,Quartus2軟件中就整合了一種新技術(shù),或者說(shuō)一種新的設(shè)計(jì)流程:增量式編譯(Incremental Compilation)。它是ALTERA為解決大容量FPGA設(shè)計(jì)編譯時(shí)間太長(zhǎng)的問(wèn)題給出的一個(gè)新式工具!您,了解它嗎?
增量式編譯原理及流程
增量式編譯QIC的原理很容易理解:對(duì)一個(gè)復(fù)雜的設(shè)計(jì)而言,肯定是需要做一定的功能劃分,由不同的子功能模塊來(lái)實(shí)現(xiàn)。那么在設(shè)計(jì)進(jìn)入后期比較成熟的時(shí)候,前后兩次編譯的設(shè)計(jì)版本中,會(huì)有很大部分的電路邏輯都是相同的(沒(méi)有修改),如果能在后一次編譯中,重復(fù)利用前一次編譯中未改變部分的編譯結(jié)果,也就是相應(yīng)部分的布局布線信息,那么就能把這部分邏輯所消耗的布局布線時(shí)間節(jié)約下來(lái),從而在很大程度上縮短整個(gè)設(shè)計(jì)的編譯時(shí)間。當(dāng)然,聰明的讀者都能想到,這樣的編譯方式,除了能縮短編譯時(shí)間,還能支持許多別的用途,比如IP設(shè)計(jì)交付、團(tuán)隊(duì)開(kāi)發(fā)、不改變正常設(shè)計(jì)結(jié)果插入調(diào)試接口等。這些確實(shí)都是ALTERA 增量式編譯能夠?qū)崿F(xiàn)的功能,但在本文中我們只闡述QIC在縮短編譯時(shí)間方面的作用。
增量式編譯原理雖然簡(jiǎn)單,但要在FPGA的EDA軟件中實(shí)現(xiàn),卻是一個(gè)復(fù)雜的系統(tǒng)工程。它不是簡(jiǎn)單地在軟件中增加一個(gè)功能模塊,而是對(duì)編譯處理流程多方面的改變和增強(qiáng)!請(qǐng)比較圖1和圖2兩幅附圖:圖1是傳統(tǒng)的FPGA編譯流程(Altera名稱(chēng):Flat compilation),圖2則是增量式編譯流程的示意圖。我們很容易發(fā)現(xiàn)增量式編譯流程復(fù)雜了許多,不僅引入了一些新的概念,比如設(shè)計(jì)分區(qū)(partition)、分區(qū)綜合后網(wǎng)表、分區(qū)布局/布線后網(wǎng)表等,同時(shí)加入了新的處理階段——分區(qū)合并(partition merging),而且對(duì)分析綜合(AnalysisSynthesis)和布局布線(fitter)階段進(jìn)行了改進(jìn),增加了許多針對(duì)分區(qū)的具體操作。
圖1 Flat Compilation 流程
圖2 QIC增量式編譯流程
經(jīng)過(guò)幾年的研究與實(shí)踐,QuartusII的增量式編譯已逐步完善,無(wú)論是在可操作性、穩(wěn)健性方面,還是在縮短編譯時(shí)間的效果方面,都十分出色。筆者參與的幾個(gè)客戶(hù)項(xiàng)目中,通過(guò)QIC的實(shí)施,都得到了50%左右的編譯時(shí)間節(jié)約,極大提高了客戶(hù)的開(kāi)發(fā)效率。下面,我將結(jié)合這些實(shí)際項(xiàng)目中的經(jīng)驗(yàn),介紹如何實(shí)踐利用QIC來(lái)高效的縮短設(shè)計(jì)編譯時(shí)間。
評(píng)論