資料介紹
對(duì)于設(shè)計(jì)者來說,當(dāng)然希望我們設(shè)計(jì)的電路的工作頻率(在這里如無特別說明,工作頻率指 FPGA 片內(nèi)的工作頻率)盡量高。我們也經(jīng)常聽說用資源換速度,用流水的方式可以提高工作頻率,這確實(shí)是一個(gè)很重要的方法,今天我想進(jìn)一步去分析該如何提高電路的工作頻率。我們先來分析下是什么影響了電路的工作頻率。我們電路的工作頻率主要與寄存器到寄存器之間的信號(hào)傳播時(shí)延及 clock skew 有關(guān)。在 FPGA 內(nèi)部如果時(shí)鐘走長線的話,clock skew 很小,基本上可以忽略, 在這里為了簡單起見,我們只考慮信號(hào)的傳播時(shí)延的因素。信號(hào)的傳播時(shí)延包括寄存器的開關(guān)時(shí)延、走線時(shí)延、經(jīng)過組合邏輯的時(shí)延(這樣劃分或許不是很準(zhǔn)確,不過對(duì)分析問題來說應(yīng)該是沒有可以的),要提高電路的工作頻率,我們就要在這三個(gè)時(shí)延中做文章,使其盡可能的小。我們先來看開關(guān)時(shí)延,這個(gè)時(shí)延是由器件物理特性決定的,我們沒有辦法去改變,所以我們只能通過改變走線方式和減少組合邏輯的方法來提高工作頻率。 1. 通過改變走線的方式減少時(shí)延。我們通過給綜合器加適當(dāng)?shù)募s束(不可貪心,一般以加 5%裕量較為合適,比如電路工作在 100Mhz,則加約束加到 105Mhz 就可以了,貪心效果反而不好,且極大增加綜合時(shí)間)可以將相關(guān)的邏輯在布線時(shí)盡量布的靠近一點(diǎn),從而減少走線的時(shí)延。(注:約束的實(shí)現(xiàn)不完全是通過改進(jìn)布局布線方式去提高工作頻率,還有其它的改進(jìn)措施) 2. 通過減少組合邏輯的減少時(shí)延。我們知道,目前大部分 FPGA 都基于 4 輸入 LUT 的,如果一個(gè)輸出對(duì)應(yīng)的判斷條件大于四輸入的話就要由多個(gè) LUT 級(jí)聯(lián)才能完成,這樣就引入一級(jí)組合邏輯時(shí)延,我們要減少組合邏輯,無非就是要輸入條件盡可能的少,這樣就可以級(jí)聯(lián)的 LUT 更少,從而減少了組合邏輯引起的時(shí)延。我們平時(shí)聽說的流水就是一種通過切割大的組合邏輯(在其中插入一級(jí)或多級(jí) D 觸發(fā)器,從而使寄存器與寄存器之間的組合邏輯減少)來提高工作頻率的方法。比如一個(gè) 32 位的計(jì)數(shù)器,該計(jì)數(shù)器的進(jìn)位鏈很長,必然會(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ù)器為例,我們原希望當(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)跳變,這樣就將組合邏輯減少了。上面說的都是可以通過流水的方式切割組合邏輯的情況,但是有些情況下我們是很難去切割組合邏輯的,在這些情況下我們又該怎么做呢?狀態(tài)機(jī)就是這么一個(gè)例子,我們不能通過往狀態(tài)譯碼組合邏輯中加入流水。如果我們的設(shè)計(jì)中有一個(gè)幾十個(gè)狀態(tài)的狀態(tài)機(jī),它的狀態(tài)譯碼邏輯將非常之巨大,毫無疑問,這極有可能是設(shè)計(jì)中的關(guān)鍵路徑。那我們該怎么做呢?還是老思路,減少組合邏輯。我們可以對(duì)狀態(tài)的輸出進(jìn)行分析,對(duì)它們進(jìn)行重新分類,并根據(jù)這個(gè)重新定義成一組組小狀態(tài)機(jī),通過對(duì)輸入進(jìn)行選擇 (case 語句)并去觸發(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))去做那是不可想象的,我們可以通過 case 語句去對(duì)命令進(jìn)行譯碼,并觸發(fā)相應(yīng)的狀態(tài)機(jī),這樣做下來這一個(gè)模塊的頻率就可以跑得比較高了。提高 FPGA 工作頻率的本質(zhì),就是要減少寄存器到寄存器的時(shí)延,最有效的方法就是避免出現(xiàn)大的組合邏輯,也就是要盡量去滿足四輸入的條件,減少 LUT 級(jí)聯(lián)的數(shù)量。我們可以通過加約束、流水、切割狀態(tài)的方法提高工作頻率。 FPGA 設(shè)計(jì)需要多大容量的芯片,設(shè)計(jì)需要跑多快?這是經(jīng)常困擾工程師的兩大問題。對(duì)于前者,我們還可以選用一個(gè)較大的芯片實(shí)現(xiàn)原型,待原型完成再選用大小合適的芯片;對(duì)于后者,通常我們需要預(yù)先有一個(gè)較精確的預(yù)估,就像我們的設(shè)計(jì)能跑 50M、100M 還是 150M。
- 基于FPGA的電壓頻率可調(diào)波形發(fā)生器 3次下載
- 學(xué)會(huì)Zynq(22)XADC測量片內(nèi)溫度與電源電壓
- 基于FPGA的多圖片動(dòng)態(tài)顯示VGA系統(tǒng) 27次下載
- 如何使用FPGA實(shí)現(xiàn)基于修正Rife算法的正弦波頻率估計(jì) 7次下載
- 如何使用FPGA實(shí)現(xiàn)改進(jìn)的載波頻率相位聯(lián)合估計(jì)方案 15次下載
- 如何使用FPGA實(shí)現(xiàn)H.264幀內(nèi)預(yù)測 8次下載
- 如何使用單片機(jī)和FPGA實(shí)現(xiàn)任意頻率發(fā)生器的設(shè)計(jì) 12次下載
- 使用FPGA經(jīng)常會(huì)碰到哪些問題應(yīng)該如何解決 14次下載
- FPGA經(jīng)常有哪些常見警告應(yīng)該如何解決 9次下載
- 如何使用XILINX FPGA進(jìn)行片上嵌入式系統(tǒng)的用戶IP開發(fā) 13次下載
- 通過過采樣提高SOC單片機(jī)片內(nèi)A_D分辨率
- 采用片內(nèi)PLL實(shí)現(xiàn)實(shí)速掃描測試的方案
- FPGA在洗片機(jī)控制系統(tǒng)中的應(yīng)用
- Ray-space 數(shù)據(jù)片內(nèi)和片間相關(guān)性壓縮分析
- FPGA在洗片機(jī)控制系統(tǒng)中的應(yīng)用
- fpga全稱是什么?fpga的工作原理是什么? 1116次閱讀
- fpga芯片工作原理 fpga芯片有哪些型號(hào) 1092次閱讀
- 檢波器工作頻率和自然頻率的關(guān)系 465次閱讀
- 片內(nèi)和片間非均勻性是什么?如何計(jì)算?有什么作用呢? 1305次閱讀
- 基于多片FPGA多路復(fù)用(TDM)科普 1573次閱讀
- 該如何提高電路的工作頻率 4551次閱讀
- 集成單片PLL頻率合成器芯片的原理、結(jié)構(gòu)特點(diǎn)及應(yīng)用分析 5706次閱讀
- 電阻應(yīng)變片工作原理_電阻應(yīng)變片的類型 2.4w次閱讀
- 基于FPGA器件的內(nèi)塊存儲(chǔ)器資源功能驗(yàn)證方法設(shè)計(jì)詳解 1654次閱讀
- 如何利用片內(nèi)RAM單元直接轉(zhuǎn)換BCD 碼與 BIN 數(shù)據(jù) 3641次閱讀
- 電機(jī)剎車片工作原理 1.6w次閱讀
- 基于FPGA的壓控晶振同步頻率控制系統(tǒng)的研究與設(shè)計(jì) 4948次閱讀
- 基于單片機(jī)和FPGA的頻率特性測試儀的設(shè)計(jì) 2363次閱讀
- 基于FPGA的心電監(jiān)護(hù)儀的片上系統(tǒng)的設(shè)計(jì) 1941次閱讀
- 基于FPGA的寬頻超聲波電源頻率跟蹤系統(tǒng)設(shè)計(jì) 2832次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多