chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

數(shù)字IC/FPGA設(shè)計(jì)中的時(shí)序優(yōu)化方法

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 2025-12-09 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

在數(shù)字IC/FPGA設(shè)計(jì)的過(guò)程中,對(duì)PPA的優(yōu)化是無(wú)處不在的,也是芯片設(shè)計(jì)工程師的使命所在。此節(jié)主要將介紹performance性能的優(yōu)化,如何對(duì)時(shí)序路徑進(jìn)行優(yōu)化,提高工作時(shí)鐘頻率。

好的優(yōu)化就應(yīng)該是在代碼書(shū)寫(xiě)之前或書(shū)寫(xiě)時(shí)進(jìn)行考慮,設(shè)計(jì)完成再進(jìn)行優(yōu)化,只能是修改代碼。即便如此,修改代碼優(yōu)化設(shè)計(jì)速度也是值得提倡的。本文討論了如何減少關(guān)鍵路徑延時(shí)、邏輯復(fù)制、插入寄存器增加流水、寄存器平衡、使用并行結(jié)構(gòu)以及消除代碼中的優(yōu)先級(jí)等優(yōu)化設(shè)計(jì)速度的方法。

一. 組合邏輯中插入寄存器(Pipeline) + 重定時(shí)(retiming)

在FPGA或者是數(shù)字IC設(shè)計(jì)中,優(yōu)化時(shí)序最常用且效果最明顯的方法就是在組合邏輯中插入寄存器,也叫做插入流水線。如下圖所示。

9ab4241c-d3fa-11f0-8c8f-92fbcf53809c.png

該方法額外插入寄存器增加的時(shí)鐘周期延時(shí)并不會(huì)違反整個(gè)設(shè)計(jì)的規(guī)范要求,從而不會(huì)影響設(shè)計(jì)的總體功能性實(shí)現(xiàn),也即額外插入的寄存器在保持吞吐量不變的情況下改善了設(shè)計(jì)的時(shí)序性能,隨之帶來(lái)的是面積的增加,因此需要權(quán)衡好面積和時(shí)序要求。

很多同學(xué)可能會(huì)疑惑,我應(yīng)該在哪里插入寄存器比較好呢?插入寄存器的方法我認(rèn)為有兩種,一種是人為評(píng)估組合邏輯的長(zhǎng)度后在組合邏輯中插入寄存器,另外一種就是直接在組合邏輯的輸出直接插入寄存器再由EDA工具自動(dòng)retiming重定時(shí),如下圖。

9b0ef8e2-d3fa-11f0-8c8f-92fbcf53809c.png

什么是retiming重定時(shí)并且它的作用是什么呢?retiming就是人為或者是工具在不增加寄存器個(gè)數(shù)的前提下,通過(guò)改變寄存器的位置來(lái)優(yōu)化關(guān)鍵路徑,起到了平衡寄存器件的組合邏輯長(zhǎng)度的作用。

注意的是有時(shí)候并不需要插入寄存器直接進(jìn)行retiming也能一定程度上優(yōu)化時(shí)序路徑。

9b68676a-d3fa-11f0-8c8f-92fbcf53809c.png

DC如何啟動(dòng)retiming

方法1 自適應(yīng)retiming(Adaptive retiming)

Adaptive retiming一般是處理常規(guī)設(shè)計(jì),關(guān)鍵路徑的組合邏輯基本上是只會(huì)移動(dòng)到相鄰的寄存器。

compile_ultra -retime

方法2 流水線retiming(pipelined retiming)

Pipelined retiming主要處理pipelined設(shè)計(jì),當(dāng)關(guān)鍵路徑比較長(zhǎng)時(shí),路徑多打幾拍。綜合時(shí),采用pipelined retiming,會(huì)將路徑分?jǐn)偟蕉鄠€(gè)寄存器中,進(jìn)而提升頻率。Pipelined retiming一般針對(duì)某個(gè)模塊進(jìn)行retiming。相應(yīng)的DC指令如下所示。

# set_optimize_registers 設(shè)置需要retiming的designs模塊,可以使用通配符*set_optimize_registerstrue-design [get_designs piped_adder*] compile_ultra

NOTE:對(duì)于retiming對(duì)設(shè)計(jì)的變動(dòng)比較大,需要特別關(guān)注formality是否通過(guò),同時(shí)在設(shè)計(jì)前期比較推薦只對(duì)模塊進(jìn)行retiming,確保設(shè)計(jì)的一致性。

二、組合邏輯平衡(操作符平衡)

操作符平衡就是通過(guò)合理使用括號(hào)來(lái)對(duì)邏輯進(jìn)行分組,通過(guò)這種技術(shù)可以增加設(shè)計(jì)性能,平衡所有輸入到輸出的延時(shí),而整個(gè)設(shè)計(jì)的功能并不會(huì)改變,代價(jià)是可能增加部分面積。如下圖所示,通過(guò)合理使用括號(hào),平衡乘法操作符,使得輸入到輸出的延時(shí)從三級(jí)乘法操作減少到兩級(jí)。

9bc3c98e-d3fa-11f0-8c8f-92fbcf53809c.png

三、適當(dāng)進(jìn)行邏輯復(fù)制以?xún)?yōu)化設(shè)計(jì)速度

邏輯復(fù)制用于當(dāng)某個(gè)信號(hào)的扇出比較大時(shí),會(huì)造成該信號(hào)到各個(gè)目的邏輯節(jié)點(diǎn)的路徑變得過(guò)長(zhǎng),從而成為設(shè)計(jì)中的關(guān)鍵路徑,為了解決這個(gè)問(wèn)題,可以通過(guò)在書(shū)寫(xiě)代碼的時(shí)候?qū)υ撔盘?hào)進(jìn)行復(fù)制,以達(dá)到“分擔(dān)”信號(hào)扇出過(guò)多的目的。邏輯復(fù)制的時(shí)候也分為組合邏輯復(fù)制和寄存器復(fù)制,下面例子是將對(duì)組合邏輯復(fù)制。

原電路

module ...

wire temp;

assign temp = a & b & c;

always @(posedge clk)begin

q1 <= temp;

if(en)

q2 <= temp;

end

endmodule

9c1fa02e-d3fa-11f0-8c8f-92fbcf53809c.png

邏輯復(fù)制后電路

module ...

wire temp1;

wire temp2;

assign temp1 = a & b & c;

assign temp2 = a & b & c;

always @(posedge clk)begin

q1 <= temp1;

if(en)

q2 <= temp2;

end

endmodule

9c775dbe-d3fa-11f0-8c8f-92fbcf53809c.png

可以看到邏輯復(fù)制后,組合邏輯的扇出由2變成了1,能夠降低組合邏輯的延遲。當(dāng)然寄存器復(fù)制也是類(lèi)似的。

四、通過(guò)消除代碼中的優(yōu)先級(jí)優(yōu)化速度

根據(jù) Altera器件的特點(diǎn),一般if-else 嵌套長(zhǎng)度不要超過(guò)7級(jí)。那如何通過(guò)消除代碼中的優(yōu)先級(jí)來(lái)優(yōu)化設(shè)計(jì)的速度?所謂消除優(yōu)先級(jí),就是說(shuō)設(shè)計(jì)功能可以通過(guò)無(wú)優(yōu)先級(jí)方式來(lái)實(shí)現(xiàn),對(duì)于那些對(duì)優(yōu)先級(jí)有要求的功能模塊無(wú)法使用這個(gè)技巧。

有優(yōu)先級(jí)的寫(xiě)法

module ...

always @(posedge clk)begin

if(sel=4'b0001)

sig_out <= 4'b0001;

else if(sel=4'b0010)

sig_out <= 4'b0011;

else if(sel=4'b0100)

sig_out <= 4'b0101;

else if(sel=4'b1000)

sig_out <= 4'b0111;

else

sig_out <= 4'b1001;

end

endmodule

9cd109fe-d3fa-11f0-8c8f-92fbcf53809c.png

無(wú)優(yōu)先級(jí)的寫(xiě)法

假如說(shuō)上述代碼無(wú)優(yōu)先級(jí)要求,可以使用并行的case語(yǔ)句將代碼修改為:

module ...

always @(posedge clk)begin

case(sel)

4'b0001: sig_out <= 4'b0001;

4'b0010: sig_out <= 4'b0011;

4'b0100: sig_out <= 4'b0101;

4'b1000: sig_out <= 4'b0111;

default: sig_out <= 4'b1001;

endcase

end

endmodule

9d2b6020-d3fa-11f0-8c8f-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    1655

    文章

    22288

    瀏覽量

    630340
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5590

    瀏覽量

    129076
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    403

    瀏覽量

    38628

原文標(biāo)題:FPPA優(yōu)化之時(shí)序優(yōu)化

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    FPGA高級(jí)時(shí)序綜合教程

    fpga高手經(jīng)驗(yàn)談doc文檔在數(shù)字電路的設(shè)計(jì),時(shí)序設(shè)計(jì)是一個(gè)系統(tǒng)性能的主要標(biāo)志,在高層次設(shè)計(jì)方法
    發(fā)表于 08-11 11:30

    FPGA的I_O時(shí)序優(yōu)化設(shè)計(jì)

    FPGA的I_O時(shí)序優(yōu)化設(shè)計(jì)在數(shù)字系統(tǒng)的同步接口設(shè)計(jì), 可編程邏輯器件的輸入輸出往往需要和周
    發(fā)表于 08-12 11:57

    FPGA時(shí)序優(yōu)化高級(jí)研修班

    FPGA時(shí)序優(yōu)化高級(jí)研修班通知通過(guò)設(shè)立四大專(zhuān)題,幫助工程師更加深入理解FPGA時(shí)序,并掌握時(shí)序
    發(fā)表于 03-27 15:20

    FPGA時(shí)序約束的幾種方法

    控。從最近一段時(shí)間工作和學(xué)習(xí)的成果,我總結(jié)了如下幾種進(jìn)行時(shí)序約束的方法。按照從易到難的順序排列如下:0. 核心頻率約束 這是最基本的,所以標(biāo)號(hào)為0。1. 核心頻率約束+時(shí)序例外約束
    發(fā)表于 06-02 15:54

    FPGA時(shí)序約束的幾種方法

    的過(guò)程是從一次成功的時(shí)序收斂結(jié)果開(kāi)始,把特定的一組邏輯(Design Partition)在FPGA上實(shí)現(xiàn)的布局位置和布線結(jié)果(Netlist)固定下來(lái),保證這一布局布線結(jié)果可以在新的編譯重現(xiàn),相應(yīng)
    發(fā)表于 12-27 09:15

    靜態(tài)時(shí)序優(yōu)化策略有哪些?

    變則通,通則久。事物都有其運(yùn)行的規(guī)律,把握好規(guī)律,就能更好的實(shí)現(xiàn)人的目的。在數(shù)字后端設(shè)計(jì),時(shí)序優(yōu)化一直是關(guān)鍵問(wèn)題,尤其追求高頻高性能的設(shè)計(jì)
    發(fā)表于 12-10 07:37

    如何有效的管理FPGA設(shè)計(jì)時(shí)序問(wèn)題

    如何有效的管理FPGA設(shè)計(jì)時(shí)序問(wèn)題 當(dāng)FPGA設(shè)計(jì)面臨到高級(jí)接口的設(shè)計(jì)問(wèn)題時(shí),EMA的TimingDesigner可以簡(jiǎn)化這些設(shè)計(jì)問(wèn)題,并提供對(duì)幾乎所有接口的預(yù)先精確控制。從簡(jiǎn)單
    發(fā)表于 04-15 14:19 ?935次閱讀
    如何有效的管理<b class='flag-5'>FPGA</b>設(shè)計(jì)<b class='flag-5'>中</b>的<b class='flag-5'>時(shí)序</b>問(wèn)題

    靜態(tài)時(shí)序分析在IC設(shè)計(jì)的應(yīng)用

    討論了靜態(tài)時(shí)序分析算法及其在IC 設(shè)計(jì)的應(yīng)用。首先,文章討論了靜態(tài)時(shí)序分析的偽路徑問(wèn)題以及路徑敏化算法,分析了影響邏輯門(mén)和互連線延時(shí)的因
    發(fā)表于 12-20 11:03 ?95次下載
    靜態(tài)<b class='flag-5'>時(shí)序</b>分析在<b class='flag-5'>IC</b>設(shè)計(jì)<b class='flag-5'>中</b>的應(yīng)用

    FPGA設(shè)計(jì):時(shí)序是關(guān)鍵

    當(dāng)你的FPGA設(shè)計(jì)不能滿足時(shí)序要求時(shí),原因也許并不明顯。解決方案不僅僅依賴(lài)于使用FPGA的實(shí)現(xiàn)工具來(lái)優(yōu)化設(shè)計(jì)從而滿足時(shí)序要求,也需要設(shè)計(jì)者具
    發(fā)表于 08-15 14:22 ?1466次閱讀

    FPGA時(shí)序約束方法

    FPGA時(shí)序約束方法很好地資料,兩大主流的時(shí)序約束都講了!
    發(fā)表于 12-14 14:21 ?19次下載

    如何有效地管理FPGA設(shè)計(jì)時(shí)序問(wèn)題

    如何有效地管理FPGA設(shè)計(jì)時(shí)序問(wèn)題
    發(fā)表于 01-14 12:49 ?14次下載

    FPGA設(shè)計(jì),時(shí)序就是全部

    當(dāng)你的FPGA設(shè)計(jì)不能滿足時(shí)序要求時(shí),原因也許并不明顯。解決方案不僅僅依賴(lài)于使用FPGA的實(shí)現(xiàn)工具來(lái)優(yōu)化設(shè)計(jì)從而滿足時(shí)序要求,也需要設(shè)計(jì)者具
    發(fā)表于 02-09 01:59 ?501次閱讀

    FPGA時(shí)序約束設(shè)計(jì)

    一個(gè)好的FPGA設(shè)計(jì)一定是包含兩個(gè)層面:良好的代碼風(fēng)格和合理的約束。時(shí)序約束作為FPGA設(shè)計(jì)不可或缺的一部分,已發(fā)揮著越來(lái)越重要的作用。毋庸置疑,
    發(fā)表于 11-17 07:54 ?2935次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>時(shí)序</b>約束設(shè)計(jì)

    基于FPGA時(shí)序優(yōu)化設(shè)計(jì)

    現(xiàn)有的工具和技術(shù)可幫助您有效地實(shí)現(xiàn)時(shí)序性能目標(biāo)。當(dāng)您的FPGA 設(shè)計(jì)無(wú)法滿足時(shí)序性能目標(biāo)時(shí),其原因可能并不明顯。解決方案不僅取決于FPGA 實(shí)現(xiàn)工具為滿足
    發(fā)表于 11-18 04:32 ?3776次閱讀

    FPGA設(shè)計(jì)時(shí)序分析的基本概念

    時(shí)序分析時(shí)FPGA設(shè)計(jì)永恒的話題,也是FPGA開(kāi)發(fā)人員設(shè)計(jì)進(jìn)階的必由之路。慢慢來(lái),先介紹時(shí)序分析
    的頭像 發(fā)表于 03-18 11:07 ?3836次閱讀