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

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

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

FPGA片內(nèi)的工作頻率該如何提高?

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-10-30 12:31 ? 次閱讀

對(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í)延。


我們通過(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í)延。


我們知道,目前大部分 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è)模塊的頻率就可以跑得比較高了。

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

FPGA 設(shè)計(jì)需要多大容量的芯片,設(shè)計(jì)需要跑多快?這是經(jīng)常困擾工程師的兩大問(wèn)題。對(duì)于前者,我們還可以選用一個(gè)較大的芯片實(shí)現(xiàn)原型,待原型完成再選用大小合適的芯片;對(duì)于后者,通常我們需要預(yù)先有一個(gè)較精確的預(yù)估,就像我們的設(shè)計(jì)能跑 50M、100M 還是 150M。

除此以外,在使用 EDA 工具設(shè)計(jì)時(shí),軟件是否穩(wěn)定也是我們需要考慮的問(wèn)題。比如:

1、500M 的芯片,跑不了 50M 的邏輯,EDA 工具都出現(xiàn)哪些設(shè)計(jì)問(wèn)題?


2、為什么只是做了簡(jiǎn)單的邏輯,最終卻導(dǎo)致布線擁堵?


3、使用在線邏輯分析儀,經(jīng)常抓取不到自己想要的信號(hào)?

審核編輯 黃昊宇

聲明:本文內(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)注

    1624

    文章

    21539

    瀏覽量

    600479
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    配置和優(yōu)化DAC348x的內(nèi)PLL

    電子發(fā)燒友網(wǎng)站提供《配置和優(yōu)化DAC348x的內(nèi)PLL.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:36 ?0次下載
    配置和優(yōu)化DAC348x的<b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b>PLL

    冷光驅(qū)動(dòng)器最佳頻率是多少

    冷光驅(qū)動(dòng)器的最佳頻率并不是一個(gè)固定的值,而是取決于多個(gè)因素,包括冷光的具體類型、所需的亮度、工作電壓、環(huán)境條件(如溫度和濕度)以及設(shè)備的整體設(shè)計(jì)等。以下是對(duì)冷光
    的頭像 發(fā)表于 09-24 11:23 ?165次閱讀

    珠海鏨芯實(shí)現(xiàn)28納米FPGA

    近日,珠海鏨芯半導(dǎo)體有限公司在其官方微博上宣布,已成功實(shí)現(xiàn)28納米流。此次流成功的CERES-1 FPGA芯片,不僅對(duì)標(biāo)國(guó)際主流28納米FPGA架構(gòu),還實(shí)現(xiàn)了管腳和比特流的完全兼容
    的頭像 發(fā)表于 06-03 11:11 ?697次閱讀

    使用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)的,因此,
    發(fā)表于 03-31 16:22

    FPGA內(nèi)PLL電磁抗擾度的熱應(yīng)力效應(yīng)研究與測(cè)試分析

    內(nèi)PLL設(shè)計(jì)是IC設(shè)計(jì)中的一個(gè)重要環(huán)節(jié),在無(wú)線通信、高頻通信和數(shù)字通信等領(lǐng)域PLL的使用占據(jù)重要地位。本文以Cyclone IV系列EP4CE15F17C8N型FPGA為研究對(duì)象,其包含四個(gè)通用的PLL,分別位于芯片的四個(gè)邊角
    發(fā)表于 03-20 10:30 ?317次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b>PLL電磁抗擾度的熱應(yīng)力效應(yīng)研究與測(cè)試分析

    電阻應(yīng)變工作原理 電阻應(yīng)變的作用

    電阻應(yīng)變工作原理 電阻應(yīng)變的作用 電阻應(yīng)變是一種常見(jiàn)的應(yīng)變測(cè)量元件,可以用于測(cè)量物體的應(yīng)變變化。它工作的原理是基于電阻材料在受力或應(yīng)
    的頭像 發(fā)表于 02-02 17:06 ?3041次閱讀

    簡(jiǎn)談FPGA內(nèi)資源

    簡(jiǎn)談FPGA內(nèi)資源
    發(fā)表于 01-08 22:12

    IC的內(nèi)間非均勻性是什么?有什么作用呢?

    IC的內(nèi)間非均勻性是什么?有什么作用呢? IC的內(nèi)間非均勻性是指在IC設(shè)計(jì)和制造的過(guò)
    的頭像 發(fā)表于 12-19 11:48 ?454次閱讀

    內(nèi)間非均勻性是什么?有什么作用呢?

    內(nèi)間非均勻性是什么?有什么作用呢? 內(nèi)間非均勻性是指光學(xué)元件(如透鏡)表面上的厚度/
    的頭像 發(fā)表于 12-19 11:48 ?534次閱讀

    AT89S52單片機(jī)內(nèi)串行口的工作原理

    電子發(fā)燒友網(wǎng)站提供《AT89S52單片機(jī)內(nèi)串行口的工作原理.ppt》資料免費(fèi)下載
    發(fā)表于 12-15 09:07 ?0次下載

    如何正確配置AD9957內(nèi)RAM?

    各位專家: 我用AD9957做信號(hào)生成,目前單頻模式工作正常。但是QDUC模式下,用內(nèi)RAM回放波形始終無(wú)法調(diào)通。 按照本論壇以前的帖子,先把9957按照默認(rèn)模式初始化,寫好兩個(gè)RAM段地址
    發(fā)表于 12-13 06:51

    工作頻率范圍內(nèi)的運(yùn)放共模抑制比如何測(cè)試?

    工作頻率范圍內(nèi)的運(yùn)放共模抑制比如何測(cè)試?
    發(fā)表于 11-17 09:17

    內(nèi)間非均勻性是什么?如何計(jì)算?有什么作用呢?

    導(dǎo)語(yǔ):均勻性在芯片制程的每一個(gè)工序中都需要考慮到,包括薄膜沉積,刻蝕,光刻,cmp,離子注入等。較高的均勻性才能保證芯片的產(chǎn)品與性能。那么內(nèi)間非均勻性是什么?如何計(jì)算?有什么作用呢?
    的頭像 發(fā)表于 11-01 18:21 ?1442次閱讀
    <b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b>和<b class='flag-5'>片</b>間非均勻性是什么?如何計(jì)算?有什么作用呢?

    請(qǐng)問(wèn)AVR對(duì)內(nèi)SRAM的訪問(wèn)需要多久?

    AVR對(duì)內(nèi)SRAM的訪問(wèn)需要多久?
    發(fā)表于 10-24 07:49