當(dāng)前位置:首頁(yè) > > ZYNQ

在設(shè)計(jì)FPGA項(xiàng)目的時(shí)候,對(duì)時(shí)鐘進(jìn)行約束,但是因?yàn)樗惴ɑ蛘哂布脑?,都使得時(shí)鐘約束出現(xiàn)超差現(xiàn)象,接下來(lái)主要就是解決時(shí)鐘超差問(wèn)題,主要方法有以下幾點(diǎn)。

第一:換一個(gè)速度更快點(diǎn)的芯片,altera公司的cyclone系列FPGA,有6,7,8速度等級(jí)的,8的最慢,6的最快,或者cyclone系統(tǒng)4,5更快的芯片,當(dāng)然了成本會(huì)增加些的。

第二:盡量避免在FPGA中做乘法和除法的運(yùn)算,除非這個(gè)FPGA有硬件乘法器。我使用的這個(gè)FPGA沒(méi)有硬件乘法器,我就盡量利用左移或者右移來(lái)做乘法和除法運(yùn)算。

第三:重新分配一下IO管腳,這樣在布局布線的時(shí)候,會(huì)提高一定程度的時(shí)鐘余量。下圖是調(diào)整IO分配以后,時(shí)鐘余量提高了0.2ns。

第四:就是看看超差的那個(gè)線路,增加一些中間寄存器,或者使用流水線技術(shù),就是將組合邏輯和時(shí)序邏輯分開(kāi),大的時(shí)序邏輯,盡量?jī)?yōu)化成由很多小的時(shí)序邏輯組成一個(gè)大的時(shí)序邏輯?;蛘吒摮绦虼a,更該算法。到這一步就是沒(méi)有辦法的辦法了。

第五:有些時(shí)候在程序中加入一些和項(xiàng)目不相關(guān)的代碼,也可以提高正常程序的時(shí)鐘約束余量,估計(jì)是不相關(guān)代碼擠占了一些邏輯單元,使得正常程序在布局布線的時(shí)候,選擇了其他路徑吧。這個(gè)辦法不固定,瞎貓碰死耗子的事情。

主要就是這幾種方法了,首先要選好芯片,這是最重要的,不然為了省成本,最后發(fā)現(xiàn)芯片速度不夠,很煩人的。

最后提一下有些網(wǎng)友提到FPGA發(fā)熱厲害的現(xiàn)象,看看你在項(xiàng)目中是不是將unused pin 接地了,這樣芯片會(huì)發(fā)熱,最好將unused pin 微上拉,或者設(shè)置為輸入即可。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉