0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何提高FPGA的工作頻率

FPGA設(shè)計(jì)論壇 ? 來(lái)源:未知 ? 2022-11-16 12:10 ? 次閱讀

如何提高電路工作頻率

對(duì)于設(shè)計(jì)者來(lái)說(shuō),我們當(dāng)然希望我們?cè)O(shè)計(jì)的電路的工作頻率(在這里如無(wú)特別說(shuō)明,工作頻率指FPGA片內(nèi)的工作頻率)盡量高。我們也經(jīng)常聽(tīng)說(shuō)用資源換速度,用流水的方式可以提高工作頻率,這確實(shí)是一個(gè)很重要的方法,今天我想進(jìn)一步去分析該如何提高電路的工作頻率。

我們先來(lái)分析下是什么影響了電路的工作頻率。

我們電路的工作頻率主要與寄存器到寄存器之間的信號(hào)傳播時(shí)延及clock skew有關(guān)。在FPGA內(nèi)部如果時(shí)鐘走長(zhǎng)線的話,clock skew很小,基本上可以忽略, 在這里為了簡(jiǎn)單起見(jiàn),我們只考慮信號(hào)的傳播時(shí)延的因素。

信號(hào)的傳播時(shí)延包括寄存器的開(kāi)關(guān)時(shí)延、走線時(shí)延、經(jīng)過(guò)組合邏輯的時(shí)延(這樣劃分或許不是很準(zhǔn)確,不過(guò)對(duì)分析問(wèn)題來(lái)說(shuō)應(yīng)該是沒(méi)有可以的),要提高電路的工作頻率,我們就要在這三個(gè)時(shí)延中做文章,使其盡可能的小。

我們先來(lái)看開(kāi)關(guān)時(shí)延,這個(gè)時(shí)延是由器件物理特性決定的,我們沒(méi)有辦法去改變,所以我們只能通過(guò)改變走線方式和減少組合邏輯的方法來(lái)提高工作頻率。

1.通過(guò)改變走線的方式減少時(shí)延。
altera的器件為例,我們?cè)?a href="http://www.ttokpm.com/tags/quartus/" target="_blank">quartus里面的timing closure floorplan可以看到有很多條條塊塊,我們可以將條條塊塊按行和按列分,每一個(gè)條塊代表1個(gè)LAB,每個(gè)LAB里有8個(gè)或者是10個(gè)LE。它們的走線時(shí)延的關(guān)系如下:同一個(gè)LAB中(最快) < 同列或者同行< 不同行且不同列。
我們通過(guò)給綜合器加適當(dāng)?shù)募s束(不可貪心,一般以加5%裕量較為合適,比如電路工作在100Mhz,則加約束加到105Mhz就可以了,貪心效果反而不好,且極大增加綜合時(shí)間)可以將相關(guān)的邏輯在布線時(shí)盡量布的靠近一點(diǎn),從而減少走線的時(shí)延。(注:約束的實(shí)現(xiàn)不完全是通過(guò)改進(jìn)布局布線方式去提高工作頻率,還有其它的改進(jìn)措施)

2.通過(guò)減少組合邏輯的減少時(shí)延。
上面我們講了可以通過(guò)加約束來(lái)提高工作頻率,但是我們?cè)谧鲈O(shè)計(jì)之初可萬(wàn)萬(wàn)不可將提高工作頻率的美好愿望寄托在加約束上,我們要通過(guò)合理的設(shè)計(jì)去避免出現(xiàn)大的組合邏輯,從而提高電路的工作頻率,這才能增強(qiáng)設(shè)計(jì)的可移植性,才可以使得我們的設(shè)計(jì)在移植到另一同等速度級(jí)別的芯片時(shí)還能使用。
我們知道,目前大部分FPGA都基于4輸入LUT的,如果一個(gè)輸出對(duì)應(yīng)的判斷條件大于四輸入的話就要由多個(gè)LUT級(jí)聯(lián)才能完成,這樣就引入一級(jí)組合邏輯時(shí)延,我們要減少組合邏輯,無(wú)非就是要輸入條件盡可能的少,,這樣就可以級(jí)聯(lián)的LUT更少,從而減少了組合邏輯引起的時(shí)延。
我們平時(shí)聽(tīng)說(shuō)的流水就是一種通過(guò)切割大的組合邏輯(在其中插入一級(jí)或多級(jí)D觸發(fā)器,從而使
寄存器與寄存器之間的組合邏輯減少)來(lái)提高工作頻率的方法。比如一個(gè)32位的計(jì)數(shù)器,該計(jì)數(shù)器的進(jìn)位鏈很長(zhǎng),必然會(huì)降低工作頻率,我們可以將其分割成4位和8位的計(jì)數(shù),每當(dāng)4位的計(jì)數(shù)器計(jì)到15后觸發(fā)一次8位的計(jì)數(shù)器,這樣就實(shí)現(xiàn)了計(jì)數(shù)器的切
割,也提高了工作頻率。

在狀態(tài)機(jī)中,一般也要將大的計(jì)數(shù)器移到狀態(tài)機(jī)外,因?yàn)橛?jì)數(shù)器這東西一般是經(jīng)常是大于4輸入的,如果再和其它條件一起做為狀態(tài)的跳變判據(jù)的話,必然會(huì)增加LUT的級(jí)聯(lián),從而增大組合邏輯。以一個(gè)6輸入的計(jì)數(shù)器為例,我們?cè)M?dāng)計(jì)數(shù)器計(jì)到111100后狀態(tài)跳變,現(xiàn)在我們將計(jì)數(shù)器放到狀態(tài)機(jī)外,當(dāng)計(jì)數(shù)器計(jì)到111011后產(chǎn)生個(gè)enable信號(hào)
去觸發(fā)狀態(tài)跳變,這樣就將組合邏輯減少了。

上面說(shuō)的都是可以通過(guò)流水的方式切割組合邏輯的情況,但是有些情況下我們是很難去切割組合邏輯的,在這些情況下我們又該怎么做呢?

狀態(tài)機(jī)就是這么一個(gè)例子,我們不能通過(guò)往狀態(tài)譯碼組合邏輯中加入流水。如果我們的設(shè)計(jì)中有一個(gè)幾十個(gè)狀態(tài)的狀態(tài)機(jī),它的狀態(tài)譯碼邏輯將非常之巨大,毫無(wú)疑問(wèn),這極有可能是設(shè)計(jì)中的關(guān)鍵路徑。那我們?cè)撛趺醋瞿兀窟€是老思路,減少組合邏輯。我們可以對(duì)狀態(tài)的輸出進(jìn)行分析,對(duì)它們進(jìn)行重新分類,并根據(jù)這個(gè)重新定義成一組組小狀態(tài)機(jī),通過(guò)對(duì)輸入進(jìn)行選擇(case語(yǔ)句)并去觸發(fā)相應(yīng)的小狀態(tài)機(jī),從而實(shí)現(xiàn)了將大的狀態(tài)機(jī)切割成小的狀態(tài)機(jī)。在ATA6的規(guī)范中(硬盤的標(biāo)準(zhǔn)),輸入的命令大概有20十種,每一個(gè)命令又對(duì)應(yīng)很多種狀態(tài),如果用一個(gè)大的狀態(tài)機(jī)(狀態(tài)套狀態(tài))去做那是不可想象的,我們可以通過(guò)case語(yǔ)句去對(duì)命令進(jìn)行譯碼,并觸發(fā)相應(yīng)的狀態(tài)機(jī),這樣做下來(lái)這一個(gè)模塊的頻率就可以跑得比較高了。

總結(jié):提高工作頻率的本質(zhì)就是要減少寄存器到寄存器的時(shí)延,最有效的方法就是避免出現(xiàn)大的組合邏輯,也就是要盡量去滿足四輸入的條件,減少LUT級(jí)聯(lián)的數(shù)量。我們可以通過(guò)加約束、流水、切割狀態(tài)的方法提高工作頻率。



掃描二維碼獲取

更多精彩

FPGA設(shè)計(jì)論壇




歡迎關(guān)注至芯科技

至芯官網(wǎng):www.zxopen.com

至芯科技技術(shù)論壇:www.fpgaw.com

至芯科技淘寶網(wǎng)址:

https://zxopen.taobao.com

至芯科技FPGA初級(jí)課程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在線課程(騰訊課堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839






精彩推薦



至芯科技12年不忘初心、再度起航11月12日北京中心FPGA工程師就業(yè)班開(kāi)課、線上線下多維教學(xué)、歡迎咨詢!
如何在FPGA設(shè)計(jì)中充分利用NoC資源?一招Get
FPGA從入門到高手
掃碼加微信邀請(qǐng)您加入FPGA學(xué)習(xí)交流群




歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!



點(diǎn)個(gè)在看你最好看






原文標(biāo)題:如何提高FPGA的工作頻率

文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598897

原文標(biāo)題:如何提高FPGA的工作頻率

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    提高高開(kāi)關(guān)頻率下更高負(fù)載的效率應(yīng)用報(bào)告

    電子發(fā)燒友網(wǎng)站提供《提高高開(kāi)關(guān)頻率下更高負(fù)載的效率應(yīng)用報(bào)告.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:33 ?0次下載
    <b class='flag-5'>提高</b>高開(kāi)關(guān)<b class='flag-5'>頻率</b>下更高負(fù)載的效率應(yīng)用報(bào)告

    什么是DDR4內(nèi)存的工作頻率

    DDR4內(nèi)存的工作頻率是指DDR4內(nèi)存條在運(yùn)行時(shí)所能達(dá)到的速度,它是衡量DDR4內(nèi)存性能的一個(gè)重要指標(biāo)。DDR4內(nèi)存作為目前廣泛使用的內(nèi)存類型之一,其工作頻率經(jīng)歷了從最初的低
    的頭像 發(fā)表于 09-04 12:45 ?301次閱讀

    LLC電源轉(zhuǎn)換器的工作頻率

    LLC電源轉(zhuǎn)換器的工作頻率是一個(gè)關(guān)鍵參數(shù),它直接影響到變換器的性能、效率和穩(wěn)定性。然而,要詳細(xì)闡述LLC電源轉(zhuǎn)換器的工作頻率,需要深入探討其工作
    的頭像 發(fā)表于 08-20 17:19 ?324次閱讀

    FPGA頻率測(cè)量的方法有哪些?

    FPGA在實(shí)際應(yīng)用中,頻率測(cè)量不可或缺,對(duì)于高頻及低頻信號(hào)的頻率測(cè)量,FPGA有哪些方法呢?提供Verilog源碼會(huì)更好。
    發(fā)表于 06-19 14:55

    使用FPGA搭建的電路,其工作頻率如何設(shè)置

    如題,使用FPGA搭建的電路,其工作頻率如何設(shè)置。是受制于晶振嗎?
    發(fā)表于 05-12 21:15

    基于FPGA設(shè)計(jì)頻率計(jì)方案介紹分享

    系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方
    發(fā)表于 03-31 16:22

    如何提高SPI接口的LCD屏的刷新頻率

    怎么樣提高SPI接口的LCD屏的刷新頻率
    發(fā)表于 03-28 06:24

    FPGA芯片的工作原理和使用

    FPGA(現(xiàn)場(chǎng)可編程門陣列)芯片的使用和工作原理對(duì)于初學(xué)者來(lái)說(shuō),可能是一個(gè)相對(duì)復(fù)雜但非常有趣的學(xué)習(xí)領(lǐng)域。
    的頭像 發(fā)表于 03-27 14:59 ?702次閱讀

    fpga全稱是什么?fpga工作原理是什么?

    FPGA的全稱是Field Programmable Gate Array,即現(xiàn)場(chǎng)可編程門陣列。它是一種半導(dǎo)體邏輯芯片,可以根據(jù)用戶需要,通過(guò)編程配置其內(nèi)部邏輯電路結(jié)構(gòu),以實(shí)現(xiàn)特定的功能。FPGA的出現(xiàn)極大地提高了電子系統(tǒng)的靈活
    的頭像 發(fā)表于 03-15 14:27 ?1155次閱讀

    fpga芯片工作原理 fpga芯片有哪些型號(hào)

    FPGA芯片的工作原理主要基于其內(nèi)部的可配置邏輯單元和連線資源。包括以下工作原理: 首先,FPGA內(nèi)部包含可配置邏輯模塊(CLB)、輸出輸入模塊(IOB)和內(nèi)部連線(Interconn
    的頭像 發(fā)表于 03-14 17:17 ?1116次閱讀

    如何提高AD7747的更新頻率?

    資料上寫的是最大45HZ,有沒(méi)有辦法提高更新頻率,比如降低精度。
    發(fā)表于 01-01 06:10

    晶振在工作時(shí),它的頻率會(huì)偏離額定頻率嗎?

    晶振在工作時(shí),它的頻率會(huì)偏離額定頻率嗎? 晶振(Crystal Oscillator)是一種電子元件,用于產(chǎn)生準(zhǔn)確穩(wěn)定的頻率信號(hào)。它被廣泛應(yīng)用于各種電子設(shè)備中,包括通信設(shè)備、計(jì)算機(jī)系統(tǒng)
    的頭像 發(fā)表于 11-22 16:50 ?440次閱讀

    檢波器工作頻率和自然頻率的關(guān)系

    檢波器的工作頻率和自然頻率之間存在一定的關(guān)系。自然頻率是指系統(tǒng)在沒(méi)有外界干擾的情況下,自由振動(dòng)的頻率。而檢波器是一種用于提取調(diào)制信號(hào)的設(shè)備,
    的頭像 發(fā)表于 11-03 09:17 ?484次閱讀

    FPGA是什么?FPGA工作原理和應(yīng)用

    你是否好奇過(guò)FPGA技術(shù)是如何影響日常使用的設(shè)備的?在當(dāng)今快節(jié)奏的技術(shù)領(lǐng)域中,FPGA變得越來(lái)越重要。FPGA擁有強(qiáng)大的功能和廣泛的應(yīng)用,驅(qū)動(dòng)著現(xiàn)代科技的進(jìn)步。
    的頭像 發(fā)表于 11-02 10:06 ?2690次閱讀

    fpga與dsp通訊怎樣同步時(shí)鐘頻率?dsp和fpga通信如何測(cè)試?

    fpga與dsp通訊怎樣同步時(shí)鐘頻率?dsp和fpga通信如何測(cè)試? 在FPGA與DSP通訊時(shí),同步時(shí)鐘頻率非常重要,因?yàn)椴煌脑O(shè)備有不同的
    的頭像 發(fā)表于 10-18 15:28 ?1629次閱讀