色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用RTL原語實現MUX門級映射呢?

roborobo_0706 ? 來源:艾思后端實現 ? 2023-12-14 16:26 ? 次閱讀

對于前端設計人員,經常會需要一個MUX來對工作模式,數據路徑進行明確(explicit)的聲明,這個對于中后端工程師下約束也很重要。這里介紹一種巧用的RTL原語,實現MUX的方法。

為了在最終網表里邊實現確實的MUX,通常有兩種方式。

RTL designer采用了手動實例化(instance)工藝的MUX來實現MUX。但是對于RTL在不同工藝下使用,卻造成了一些不便。

一種使用腳本替換的方法,即在綜合elaboration的數據庫上進行對標工藝的硬替換(replace),這樣也需要一套腳本流程。

上述方法可以實現MUX,但是靈活度不是很好,也需要額外的流程和代碼量。這里看看DC的解決策略。

RTL原語

DC在做HDL分析,解析(analyze,elaboration)的時候,會對RTL里邊的一些原語進行識別,譬如在verilog里邊,可以這樣使用:


verilog_code // synopsys RTL_primitive

這里的primitive是一整套RTL配置,里邊有一個功能就是可以對RTL的MUX功能進行有效映射。所以,通過這個RTL 原語,就可以實現設計出MUX的訴求。

帶入RTL原語的elaborate

DC的綜合階段,首先是嘗試把RTL的邏輯關系影射成為功能描述庫,也就是我們常說的GTECH庫。但是對于下列兩種情況會做較特殊的處理

使用case搭建的語句:DC 默認會處理成SELECT_OP類型

沿觸發/電平觸發的時序邏輯語句:DC 默認會處理成SEQGEN類型 (這里暫不作展開)

對于SELECT_OP類型的邏輯轉化,通常來自于類似下列的語句:

wKgZomV6vG2AcdDvAADxZe2eWlg254.jpg

DC對于上述語句在elaborate階段,將其轉換成為了SELECT_OP,至于最終實現的器件類型,并不明確。

按照DC的規則:compile會根據實際的時序,面積等考慮,DC會決斷把SELECT_OP實現為一個與或非邏輯或者是一個MUX邏輯。相對于RTL實例化一個MUX而言,這里就會帶來一些不確定性。

基于此,通過對RTL進行原語級別的配置,讓elaborate對case的結果進行約束。示例語法如下:

wKgaomV6vG2AZPArAACRVU6nDdg156.jpg

可以看到,這里的采用了infer_mux (infer:推斷)的原語。這個原語可以指導DC對這里的case語句進行MUX_OP實現方式的推斷,而非使用默認的SELECT_OP作替換。

wKgZomV6vG2AeltjAAE6_ro9DIs577.jpg

通過上例可以看到,同樣的代碼,在使用infer_mux和不使用的情形下,DC的elaborate給出了不同的答案。

不使用infer_mux,映射為SELECT_OP_4.1_4.1_1: 四輸入一輸出的組合邏輯結構

使用infer_mux,映射為MUX_OP_4_2_1:四輸入,二選擇,一輸出的MUX結構 由于DC的compile/compile_ultra命令是基于elaborate的映射結果,所以,這里距離完全實現目標就剩compile一個步驟了。

被改善compile結果

Compile完成后,通過verdi打開,可以很方便的查驗到結構圖:

wKgaomV6vG2AM1D6AADsL72MJXc571.jpg

可以看到,DC工具在infer_mux的dout[0]通路上使用了一個四輸入的MUX做了實現,但是在dout[1]的通路上選擇的常規的與或非邏輯作實現。

DC這樣做是有它的道理的,在本案例中,穿過dout[0]和dout[1]的時序都是滿足的,這個時候DC會有先使用面積小的進行實現dout[1]邏輯,但是會依賴infer_mux的指引實現dout[0]上的邏輯:

dout[0]上的MUX4面積: 98.76

dout[1]的與或非邏輯面積:70.092 所以,在原語的控制下,DC強制使用了MUX,而對于其他部分,DC其實是做了更為優化的選擇,譬如這里的面積優先選擇機制。

MUX樹的創建

除過RTL代碼保持平滑度的好處外,原語的另一個好處是可以讓工具自動選擇合適的MUX進行結果構建。譬如當前工藝庫最大提供了四輸入MUX,如果是一個較大扇入(fan-in)的MUX需求,DC工具可以友好的進行自動“拓展”,靈活構建一個MUX Tree 達到用戶需要的結果 譬如下例:RTL書寫了一個八輸入MUX

wKgZomV6vG2AVs6RAADcXVCOwV4683.jpg

elaborate后,DC將它正確識別成了:八輸入,三控制,一輸出的MUX:MUX_OP_8_3_1_1 工藝庫并沒有八輸入這個大的MUX,這個時候如果使用手動構建會比較復雜。但是DC卻可以做自動“拓展”,使用了兩個MUX4外加一個MUX2,完成了這個MUX tree的構建, compile完成后,通過查看網表可以看到,這里最終是一個MUX tree來實現這個八輸入MUX,見下圖:

wKgaomV6vG2AHKviAADA-KfnaV0395.jpg

可以看到,DC先是放了兩個平行的四輸入的MUX進行選擇,然后進入到一個兩輸入的MUX做最后的決斷。

作為比對,這里的dout[4],并未采用infer_mux 作實現,可以看到DC使用了常規的與或非結構進行了實現

wKgaomV6vG2AFxnZAAEFiuDho9Q715.jpg

使用RTL原語的方法,對于設計人員的工作量大為減少,并且可以不依賴工藝庫,DC工具甚至可以自動構建MUX tree,達到了事半功倍的效果。

== =【敲黑板劃重點】===

RTL原語是DC對于RTL的一個特殊指令,通過這套系統可以對elaborate進行顯性(explicity )的干預,設計人員可以靈活使用,將設計理念完整的傳遞到中后端。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HDL
    HDL
    +關注

    關注

    8

    文章

    327

    瀏覽量

    47378
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59763
  • Mux
    Mux
    +關注

    關注

    0

    文章

    38

    瀏覽量

    23372

原文標題:巧用RTL原語實現MUX門級映射

文章出處:【微信號:ExASIC,微信公眾號:ExASIC】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電路低功耗設計優化案例分析

    電路的功耗優化(Gate Level Power Optimization,簡稱GLPO)是從已經映射網表開始,對設計進行功耗的優
    的頭像 發表于 07-02 16:28 ?5425次閱讀
    <b class='flag-5'>門</b><b class='flag-5'>級</b>電路低功耗設計優化案例分析

    RTL設計的基本要素和步驟是什么

      綜合(Logic Synthesize)是指將HDL語言、原理圖等設計輸入翻譯成由與、或、非門等基本邏輯單元組成的連接(網表),并根據設計目標與要求(約束條件)優化所生成的邏輯連接,輸出門網表文件。
    的頭像 發表于 01-17 16:57 ?1w次閱讀
    <b class='flag-5'>RTL</b><b class='flag-5'>級</b>設計的基本要素和步驟是什么

    求解大神,如何用基本邏輯和觸發器實現6進制加法計數器

    求解大神,如何用基本邏輯和觸發器實現6進制加法計數器等...還有12進制加法計數器
    發表于 11-29 18:40

    RTL仿真與門仿真

    本人最近用verilog代碼寫了一個DDS正弦波發生器,RTL仿真波形正確,但仿真出現毛刺,不知道該如何去掉這些毛刺?我用的是quartus ii 15.0,一開始沒分清各種仿真,編譯完后就直接
    發表于 08-08 22:57

    關于RTL仿真和仿真求助~

    `剛剛本科畢業,假期導師要求做一個設計。實驗室沒有做過FPGA的學長只好問網上的各位了。寫好的FPGA代碼進行RTL仿真波形是符合要求的,如下圖。但是做仿真的時候,時序就不對了,變成了這樣
    發表于 08-06 12:12

    如何從Virtex原語切換到Spartan原語

    親愛的大家,Virtex中的許多原語在Spartan 6中找不到,例如BUFIO,BUFR,IDELAY,IDDR。如何使用Spartan原語實現類似的功能?非常感謝你!箱子以上來自于谷歌翻譯以下
    發表于 06-03 10:31

    何用存儲器映射的方法實現片外FLASH的擦寫?

    請問如何用存儲器映射的方法實現片外FLASH的擦寫?
    發表于 04-20 06:13

    何用51單片機控制RTL8019AS實現以太網通訊?

    何用51單片機控制RTL8019AS實現以太網通訊?
    發表于 05-27 07:14

    電路功耗優化的相關資料分享

    (1)電路的功耗優化綜述  電路的功耗優化(Gate Level Power Optimization,簡稱GLPO)是從已經映射
    發表于 11-12 06:14

    串口IO口映射功能該如何去實現

    串口IO口映射功能是指什么?串口IO口映射功能該如何去實現
    發表于 12-13 07:07

    何用java映射創建java對象和調用java對象

    java是一種解析語言,java程序是通過java虛擬機解析.class的方式運行起來。因此,java中就存在java映射的概念。下面介紹如何用java映射創建java對象和調用java對象的方法
    發表于 04-11 14:43

    介紹RTL設計引入的后端實現過程中的布線問題

    RTL設計引入的后端實現過程中的布線(routing)問題。后端物理實現需要完成芯片中布局布線(place&routing)的工作。在物理實現過程中routing之前
    發表于 04-11 17:11

    (五)電路低功耗設計優化

    (1)電路的功耗優化綜述  電路的功耗優化(Gate Level Power Optimization,簡稱GLPO)是從已經映射
    發表于 11-07 11:05 ?19次下載
    (五)<b class='flag-5'>門</b><b class='flag-5'>級</b>電路低功耗設計優化

    邏輯綜合與物理綜合

    利用工具將RTL代碼轉化為網表的過程稱為邏輯綜合。綜合一個設計的過程,從讀取RTL代碼開始,通過時序約束關系,映射產生一個
    的頭像 發表于 11-28 16:02 ?2689次閱讀

    X態如何通過RTL仿真模型中的邏輯進行傳播

    在Verilog中,IC設計工程師使用RTL構造和描述硬件行為。但是RTL代碼中的一些語義,并不能夠準確地為硬件行為建模。
    的頭像 發表于 04-20 09:12 ?2030次閱讀
    主站蜘蛛池模板: 国产精品伊人| 乱VODAFONEWIFI熟妇| 青青久久国产| 亚洲国产在线观看免费视频| 99久久精品免费精品国产| 国产特级毛片AAAAAAA高清| 欧美性喷潮xxxx| 野花日本手机观看大全免费3| www.x日本| 久久亚洲人成国产精品| 午夜一级视频| 宝贝好紧好爽再搔一点试視頻 | 无套内射在线观看THEPORN| 97精品一区二区视频在线观看| 精品高潮呻吟99AV无码| 色怕怕| 精品久久久久中文字幕日本| 日本二区三区欧美亚洲国| 中国女人精69xxxxxx视频| 国模孕妇模特季玥之粉红| 入禽太深免费高清在线观看5| 99精品视频在线| 久久精品国产亚洲AV影院| 亚欧洲乱码视频一二三区| 成片免费观看视频在线网| 暖暖日本免费播放| 在线播放一区| 精品蜜臀AV在线天堂| 香蕉精品国产自在现线拍| 岛国片免费在线观看| 秋霞电影网视频一区二区三区 | 软糯白嫩双性受h| 99久久精品国产免费| 老男人粗大猛| 野花香在线观看免费观看大全动漫| 国产免费啪嗒啪嗒视频看看 | 国产自产第一区c国产| 同居了嫂子在线观看| 岛国片在线看| 日韩在线中文字幕无码| JAVASCRIPTJAVA水多多|