試用手記:為國(guó)產(chǎn)FPGA正名(四,時(shí)序工具)
關(guān)于時(shí)序工具的一些FAE解答:
問(wèn):你們的工具是否只提供所有輸入輸出管腳完全一致的時(shí)序約束?如tsu,th,tco,tpd的約束?如果不同管腳可以有不 同約束值,如何設(shè)置?
FAE:我們的工具提供的是時(shí)序分析功能,尚未提供時(shí)序約束功能,也就是說(shuō)可以根據(jù)您輸入的值作為參考,計(jì)算出當(dāng)前實(shí)現(xiàn)的各種時(shí)序信息與參考值的差距,但并不會(huì)根據(jù)輸入的值去做優(yōu)化,所以也就不存在對(duì)不同管腳分別設(shè)置約束的功能了。
問(wèn):tco是指reg2pin的延時(shí)約束,tpd是指pin2pin的約束。而輸入管腳約束tsu和th值,具體含義我不是很 明白?比如說(shuō)我希望輸入管腳的pin2reg延時(shí)為0-10ns,那么tsu和th如何設(shè)置?
FAE:tsu就可以理解為pin2reg的延時(shí),它是信號(hào)從pin到FPGA內(nèi)部第一個(gè)reg相對(duì)于這個(gè)reg的clock的setup time,而th就是相對(duì)這個(gè)clock的hold time,th一般不會(huì)有問(wèn)題,需要關(guān)注的是tsu。
問(wèn):我嘗試用GUI做了一些時(shí)序約束,然后每次做時(shí)序分析都報(bào)錯(cuò):Error: T2000: (ice_run_sta) Run sta failed. 這是什么問(wèn)題?
FAE:您的這個(gè)錯(cuò)誤一般是sta設(shè)置上有什么問(wèn)題,得具體分析工程。
今天終于拿到了最新3.2版本的軟件,安裝后,進(jìn)行編譯,長(zhǎng)達(dá)近10分鐘的placement讓我眉頭緊皺。后來(lái)從FAE處得知我拿到的是還未 release出來(lái)的中間版本,有問(wèn)題在所難免。不說(shuō)這個(gè),回到主題上來(lái),其實(shí)總感覺(jué)有些遺憾。FAE在之前的回答其實(shí)已經(jīng)預(yù)示著這個(gè)國(guó)產(chǎn)FPGA與特權(quán)同學(xué)緣分已到盡頭。
WHY?他們提供的時(shí)序分析工具根本算不上真正的時(shí)序分析工具,或者這么說(shuō),這個(gè)所謂的時(shí)序分析工具只能提供分析,而無(wú)法進(jìn)行時(shí)序的約束和優(yōu)化。即便他們的工程設(shè)置中也提供了如圖1的恐怕可以稱(chēng)得上是最簡(jiǎn)單的“時(shí)序約束”,但這個(gè)所謂的“時(shí)序約束”其實(shí)并沒(méi)有任何“約束”的作用。安裝“官方”的說(shuō)法,它不能夠?qū)C合乃至布局布線起到任何影響,而不過(guò)是給報(bào)告中的路徑劃了一條水平線,報(bào)告中確實(shí)能夠體現(xiàn)出水平線上或下的狀態(tài)。
圖1
如圖2所示,很無(wú)奈的只是移植了一個(gè)SDRAM控制器外加一些其它邏輯,占去了總共1000個(gè)LE中80%的資源,然后只是約束了一個(gè)50MHz的工作時(shí)鐘,結(jié)果出來(lái)了20條false路徑。即便嘗試去試試用提供的僅有幾個(gè)對(duì)mapping或palcement&routing設(shè)置的優(yōu)化,結(jié)果換來(lái)了更多的false。FAE也坦言,目前只能做些簡(jiǎn)單的邏輯,跑個(gè)SDRAM等稍復(fù)雜的邏輯也就只能跑個(gè)二三十兆的樣子。
圖2
幾天的試用,雖然以國(guó)產(chǎn)FPGA的性能問(wèn)題而告夭折。雖然還顯稚嫩的開(kāi)發(fā)工具、差強(qiáng)人意的器件性能多少讓人有些失望,但至少?gòu)哪撤N程度上讓特權(quán)同學(xué)改變了對(duì)國(guó)產(chǎn)的一些偏見(jiàn)。其實(shí),如果Agate Logic能夠持續(xù)這種開(kāi)發(fā)熱情,不斷的改進(jìn),假以時(shí)日,相信他們會(huì)成為“中國(guó)的Altera”、“中國(guó)的Xilinx”。