99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

10個(gè)RTL優(yōu)化實(shí)戰(zhàn)技巧

FPGA研究院 ? 來源:OpenFPGA ? 2025-07-21 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA項(xiàng)目,最怕啥?

資源爆表!Timing炸裂!布線卡死!

今天我給大家總結(jié)10個(gè)實(shí)戰(zhàn)級優(yōu)化技巧,每條都有具體案例,助你從根源上搞定資源問題!

技巧一:減少不必要的總線寬度

問題實(shí)例:

原代碼:

reg [255:0] data_bus;

實(shí)際上每次只用前32位。

優(yōu)化做法,改成需要的實(shí)際位寬:

改成:

reg [31:0] data_bus;

LUT減少了90%,走線壓力降低!

技巧二:移位替代小乘法

問題實(shí)例:

assign out =in* 4;

Vivado推導(dǎo)成DSP48。

優(yōu)化做法:

assign out =in<< 2;

完全用LUT實(shí)現(xiàn),DSP零占用!

技巧三:啟用資源共享

設(shè)置方法(Vivado):

在opt_design階段加參數(shù):

opt_design -resource_sharing on

如果你只想對某些模塊資源共享,可以在Verilog代碼里加屬性控制:

(* use_dsp ="yes", resource_sharing ="yes"*)
module your_compute_block (...);

這樣可以更精細(xì)地控制哪些邏輯共享,哪些不共享。

好處LUT/FF/DSP資源大幅節(jié)省,特別適合大面積重復(fù)運(yùn)算設(shè)計(jì)。

風(fēng)險(xiǎn)可能帶來額外MUX切換邏輯,使得時(shí)序(Timing)稍微惡化。

禁用場景極限高速設(shè)計(jì)(>400MHz以上)、低延遲關(guān)鍵路徑模塊,建議慎用或局部使用。

驗(yàn)證需要配合Report(比如report_utilization和report_timing_summary)檢查,確保資源節(jié)省大于時(shí)序代價(jià)。

適用于大量重復(fù)的加法、乘法邏輯,資源利用率直接提升20%以上。

技巧四:優(yōu)化狀態(tài)機(jī)編碼

問題實(shí)例:

默認(rèn)綜合大狀態(tài)機(jī),導(dǎo)致占用大量觸發(fā)器。

優(yōu)化做法: 在Verilog中加指令:

(* fsm_encoding ="onehot"*) reg [7:0] state;

One-Hot編碼,時(shí)序更好,LUT使用下降!

技巧五:降低組合邏輯深度

問題實(shí)例:

大量if-else嵌套:

if(a) begin
if(b) begin
 if(c) begin
   ...

導(dǎo)致綜合出的LUT鏈超長,Timing很難收斂。

優(yōu)化做法:

拆分成多個(gè)小模塊,每層只管一件事。

技巧六:充分利用Block RAM和UltraRAM

問題實(shí)例:

有些人用reg數(shù)組實(shí)現(xiàn)大規(guī)模存儲,比如:

reg [31:0] mem_array [0:1023];

Vivado可能默認(rèn)推成觸發(fā)器堆棧,嚴(yán)重浪費(fèi)LUT/FF資源。

優(yōu)化做法:

強(qiáng)制指示綜合器用Block RAM:

(* ram_style ="block"*) reg [31:0] mem_array [0:1023];

或者寫成標(biāo)準(zhǔn)雙端口RAM結(jié)構(gòu),Vivado自然推導(dǎo)。

存儲轉(zhuǎn)BRAM/URAM,節(jié)省90%以上的邏輯資源!

技巧七:精簡控制邏輯,少寫“變態(tài)大if-else”

問題實(shí)例:

復(fù)雜判斷邏輯:

if(mode1 &&enable) begin
 ...
endelseif(mode2 && ~enable&& ready) begin
 ...
endelseif(...)

導(dǎo)致大量LUT拼接、布線惡化。

優(yōu)化做法:

改成干凈的case語句或者簡單解碼器方式處理:

case(current_mode)
 MODE1:if(enable) ...;
 MODE2:if(ready) ...;
 ...
endcase

邏輯清晰,綜合優(yōu)化空間大,減少綜合時(shí)間!

技巧八:審查Reset邏輯,減少全局復(fù)位

問題實(shí)例:

所有寄存器都強(qiáng)制帶Reset信號,像這樣:

always @(posedge clk or posedge rst) begin
if(rst)
  q <= 0;
??else
? ? q <= d;
end

Vivado需要為每個(gè)復(fù)位信號單獨(dú)布線,增加布線擁堵和時(shí)序壓力。

優(yōu)化做法:

不重要的寄存器(如數(shù)據(jù)路徑暫存器)去掉Reset

重要控制信號保持Reset

可以考慮使用異步小范圍復(fù)位,減少全局影響

減少Reset數(shù)量,布線更容易,F(xiàn)max提高明顯!

技巧九:保持同步設(shè)計(jì),避免異步邏輯污染

問題實(shí)例:

寫異步模塊,比如:

always @(posedge clk1) begin
 data1 <= input;
end

always @(posedge clk2) begin
? output <= data1;
end

不同Clock域硬懟在一起,沒有同步器,極易出錯(cuò),而且Vivado綜合器無法優(yōu)化,資源浪費(fèi)嚴(yán)重。

優(yōu)化做法:

用標(biāo)準(zhǔn)兩級同步器跨Clock域

控制時(shí)序收斂,明確時(shí)鐘區(qū)域分界

同步跨域例子:

always @(posedge clk2) begin
 sync_stage1 <= data1;
? sync_stage2 <= sync_stage1;
end

避免隱性時(shí)序錯(cuò)誤,同時(shí)資源更可控。

技巧十:及早加約束,及時(shí)做時(shí)序仿真

問題實(shí)例:

很多項(xiàng)目前期只堆代碼,不加任何XDC/SDC約束,最后實(shí)現(xiàn)時(shí)才發(fā)現(xiàn):

WNS(Worst Negative Slack)嚴(yán)重

TNS(Total Negative Slack)爆表

布線卡住,資源亂用

優(yōu)化做法:

每新增模塊,立刻補(bǔ)充基本時(shí)序約束(比如create_clock、set_input_delay、set_output_delay)

每次綜合后跑一次時(shí)序仿真(Functional/Timing仿真)

早發(fā)現(xiàn)邏輯、早調(diào)整設(shè)計(jì)架構(gòu)!

綜合收斂早、實(shí)現(xiàn)時(shí)間短、避免后期爆炸性加班!

本文轉(zhuǎn)載自O(shè)PENFPGA公眾號

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

    關(guān)注

    1646

    文章

    22054

    瀏覽量

    618802
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2961

    瀏覽量

    89803
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    390

    瀏覽量

    61156

原文標(biāo)題:FPGA資源爆表了?10個(gè)RTL優(yōu)化實(shí)戰(zhàn)技巧

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    優(yōu)化 FPGA HLS 設(shè)計(jì)

    優(yōu)化 FPGA HLS 設(shè)計(jì) 用工具用 C 生成 RTL 的代碼基本不可讀。以下是如何在不更改任何 RTL 的情況下提高設(shè)計(jì)性能。 介紹 高級設(shè)計(jì)能夠以簡潔的方式捕獲設(shè)計(jì),從而
    發(fā)表于 08-16 19:56

    PCB設(shè)計(jì)中EMI控制原理與實(shí)戰(zhàn)技

    EMI問題是很多工程師在PCB設(shè)計(jì)遇到的最大挑戰(zhàn),由于電子產(chǎn)品信號處理頻率越來越高,EMI問題日益顯著,雖然有很多書籍對EMI問題進(jìn)行了探討,但是都不夠深入,《PCB設(shè)計(jì)中EMI控制原理與實(shí)戰(zhàn)技
    發(fā)表于 05-19 15:58

    2013(北京)高性能電源技術(shù)分享與實(shí)戰(zhàn)技術(shù)研討會

    3月30日(周六),一起參加2013(北京)高性能電源技術(shù)分享與實(shí)戰(zhàn)技術(shù)研討會吧,參會免費(fèi)、還有免費(fèi)技術(shù)書籍贈送,更有知名專家的實(shí)戰(zhàn)案例分享和現(xiàn)場互動交流 !http://bbs.21dianyuan.com/146656.html
    發(fā)表于 03-19 23:12

    FPGA應(yīng)用開發(fā)實(shí)戰(zhàn)技巧精粹

    #電子書連載#《FPGA應(yīng)用開發(fā)實(shí)戰(zhàn)技巧精粹》第6章 Synplify綜合工具使用技巧, 綜合工具將 HDL 描述的語句轉(zhuǎn)換為布局布線工具可以識別的網(wǎng)表格式(EDF格式) ,在 FPGA 的設(shè)計(jì)中非
    發(fā)表于 08-05 11:10

    無線充電實(shí)戰(zhàn)技術(shù)交流 坐標(biāo)深圳

    1.13號下午(周六)深圳(感興趣找我報(bào)名):無線充電實(shí)戰(zhàn)技術(shù)交流主題方向:中、小功率、無線充電介紹;以及硬件、代碼介紹、最新無線充電技術(shù)介紹;現(xiàn)場中功率無線充電批量應(yīng)用產(chǎn)品演示;無線充電原理圖、PCB圖、源代碼講解等;以及多家DEMO演示等;需要參加可以聯(lián)系我,QQ:103472959
    發(fā)表于 01-03 16:34

    怎么利用Synphony HLS為ASIC和FPGA架構(gòu)生成最優(yōu)化RTL代碼?

    相比,能夠?yàn)橥ㄐ藕投嗝襟w應(yīng)用提供高達(dá)10倍速的更高的設(shè)計(jì)和驗(yàn)證能力。Synphony HLS為ASIC 和 FPGA的應(yīng)用、架構(gòu)和快速原型生成最優(yōu)化RTL。Synphony HLS解決方案架構(gòu)圖
    發(fā)表于 08-13 08:21

    華碩Realtek RTL8111b/10/100/1000

    華碩Realtek RTL8111b 10 100 1000M LAN Driver 5.646.0727.2006 .zip
    發(fā)表于 02-05 15:40 ?6次下載

    RTL功耗優(yōu)化

    在我們針對 PC 圖形、視覺計(jì)算和應(yīng)用處理器的高性能、低功耗設(shè)計(jì)方法中,RTL 功耗優(yōu)化是非常關(guān)鍵的一步。NVIDIA Corporation 硬件工程部總監(jiān) Dan Smith 講道
    發(fā)表于 09-11 11:40 ?9次下載
    <b class='flag-5'>RTL</b>功耗<b class='flag-5'>優(yōu)化</b>

    湖南公安機(jī)關(guān)舉行警用無人機(jī)實(shí)戰(zhàn)技能比武演練活動

    12月17日至18日,湖南省公安機(jī)關(guān)舉行了警用無人駕駛航空器實(shí)戰(zhàn)技能比武演練活動,16支參賽代表隊(duì)圍繞警用無人機(jī)可疑目標(biāo)偵查、定點(diǎn)拋投和空中全視景偵查3個(gè)實(shí)戰(zhàn)項(xiàng)目。
    的頭像 發(fā)表于 12-21 09:27 ?3677次閱讀

    用Elaborated Design優(yōu)化RTL的代碼

    在Vivado FlowNavigator中有一個(gè)Elaborated Design,如下圖所示,屬于RTL Analysis這一步對應(yīng)的設(shè)計(jì)??赡芎芏喙こ處煻紱]有使用到,而實(shí)際上對于代碼優(yōu)化,它是很有幫助的。
    的頭像 發(fā)表于 10-21 10:56 ?5874次閱讀
    用Elaborated Design<b class='flag-5'>優(yōu)化</b><b class='flag-5'>RTL</b>的代碼

    RTOS應(yīng)用程序設(shè)計(jì)的五個(gè)實(shí)戰(zhàn)技

    今天聊一下RTOS應(yīng)用程序設(shè)計(jì)的五個(gè)實(shí)戰(zhàn)技巧。
    的頭像 發(fā)表于 04-18 10:02 ?1444次閱讀

    擺脫自建庫的繁瑣,EDA元件庫轉(zhuǎn)cadence原理圖封裝庫實(shí)戰(zhàn)技

    擺脫自建庫的繁瑣,EDA元件庫轉(zhuǎn)cadence原理圖封裝庫實(shí)戰(zhàn)技
    的頭像 發(fā)表于 08-24 12:29 ?6767次閱讀
    擺脫自建庫的繁瑣,EDA元件庫轉(zhuǎn)cadence原理圖封裝庫<b class='flag-5'>實(shí)戰(zhàn)技</b>巧

    英諾達(dá)推出RTL功耗優(yōu)化工具

    英諾達(dá)(成都)電子科技有限公司隆重推出芯片設(shè)計(jì)早期RTL級功耗優(yōu)化工具—EnFortius RTL Power Explorer(ERPE),該工具可以高效、全面地在RTL設(shè)計(jì)階段進(jìn)行
    的頭像 發(fā)表于 03-20 17:06 ?578次閱讀

    提升AI訓(xùn)練性能:GPU資源優(yōu)化的12個(gè)實(shí)戰(zhàn)技

    在人工智能與機(jī)器學(xué)習(xí)技術(shù)迅速發(fā)展的背景下,GPU計(jì)算資源的高效利用已成為關(guān)鍵技術(shù)指標(biāo)。優(yōu)化的GPU資源分配不僅能顯著提升模型訓(xùn)練速度,還能實(shí)現(xiàn)計(jì)算成本的有效控制。根據(jù)AI基礎(chǔ)設(shè)施聯(lián)盟2024年發(fā)布
    的頭像 發(fā)表于 05-06 11:17 ?523次閱讀
    提升AI訓(xùn)練性能:GPU資源<b class='flag-5'>優(yōu)化</b>的12<b class='flag-5'>個(gè)</b><b class='flag-5'>實(shí)戰(zhàn)技</b>巧

    Redis集群部署與性能優(yōu)化實(shí)戰(zhàn)

    Redis作為高性能的內(nèi)存數(shù)據(jù)庫,在現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中扮演著關(guān)鍵角色。作為運(yùn)維工程師,掌握Redis的部署、配置和優(yōu)化技能至關(guān)重要。本文將從實(shí)戰(zhàn)角度出發(fā),詳細(xì)介紹Redis集群的搭建、性能優(yōu)化以及監(jiān)控運(yùn)維的核心技術(shù)。
    的頭像 發(fā)表于 07-08 17:56 ?245次閱讀