在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

談談幾種芯片設計增加代碼復用性的方法

sanyue7758 ? 來源:IC的世界 ? 2023-09-12 09:55 ? 次閱讀

很多芯片在設計之初,就已經考慮如何增加代碼的復用性,盡量減少工作量,降低錯誤概率。 增加復用性的幾個場景:

不同項目之間的代碼復用性

不同工藝之間的代碼復用性

同一個模塊例化多份,分別工作在不同模式下

同一個項目不同環境(RTL驗證,FPGA demo 驗證)之間的代碼復用性

本章節將簡單談談幾種增加代碼復用性的方法。

1、基礎模塊IP化

在各家ASIC/FPGA項目的代碼目錄中,我們經常能看到各類小的基礎模塊,例如各類跨時鐘模塊、各類調度仲裁模塊、各類RAM讀寫模塊、各類總線接口模塊等等。它們可能命名為share_ip_*或base_ip_*或cmn_ip_*,又或者其他名稱,幾乎每個設計者都需要用到這些基礎模塊。 我們在需要實現其相關功能時,只需要例化模塊即可,簡單高效,有降低了bug概率。

2、模塊參數

在進行模塊設計時,我們需要盡量保證模塊參數化,盡量避免使用立即數(例如10’d0)。 被參數化的信號可能是數據位寬,用戶數量或者其他類型的信號。

module  ip_bus_sync #( // 
    parameter   DATA_WDTH                       =       16                                      ,   //
    parameter   INI_VALUE                       =       {DATA_WDTH{1'b0}}                           //
)(
    input                                               i_src_clk                               ,   //
    input                                               i_src_rst_n                             ,   //
    input               [DATA_WDTH-1:0]                 i_src_din                               ,   //
    input                                               i_dst_clk                               ,   //
    input                                               i_dst_rst_n                             ,   //
    output  reg         [DATA_WDTH-1:0]                 o_dst_dout                                  // 


);




//邏輯代碼


endmodule

3、宏定義區分代碼分支

ASIC項目的代碼一般至少有兩個版本:ASIC版本和驗證版本(FPGA/加速器)。部分公司還會同時出兩個系列的芯片,ASIC系列和FPGA系列。因此我們通常需要通過宏定義區分不同的代碼分支和參數

`ifdef FOR_ASIC_DESIGN
  //ASIC  logic
  //參數定義
`else
  //其他分支邏輯
  //參數定義
`endif
`ifdef FOR_ASIC_DESIGN




generate
genvar  i;


for ( i=0; i
        

4、使用參數選擇代碼分支

在同一個宏定義分支下(例如同在ASIC或者FPGA項目),我們可能需要獎模塊例化多份,以支持如下場景:

Case1:同一個模塊,工作在同的模式下,為了節約資源,只需要保留對應模式的代碼邏輯。 Case2:同一個模塊,其支持的功能數量不同,所需要的RAM等資源也不相同,需要例化不同規格的RAM。

module xxxxx
#(
    parameter   FUNCTION_MODE   =       `MULTI_FUNCTION             
)
(
   //各類IO信號
) ;




generate


if (FUNCTION_MODE==`MULTI_FUNCTION) begin:MULTI_FUNCTION_CODE


     //多function 邏輯  


end


else begin:SINGLE_FUNCTION_CODE


    // 單function 邏輯


end


end
endgenerate

5、IP接口隔離

不同Vendor的IP的用戶側接口大概率是不一樣的,為了避免因為IP替換導致的大量代碼修改,可以在設計之處就考慮將IP接口隔離。例如通過2類接口轉換模塊(控制類和數據類),將所需要的控制信號和數據流信號轉換成通用的內部信號,這樣無論怎么替換IP,都只需要修改少量代碼。

4c118826-5090-11ee-a25d-92fbcf53809c.png ? ? ? ? ? ? ? ? ?

6、std cell 隔離

我們通常會將std cell外包一層或者多層代碼,這樣就能將工藝與設計代碼盡量分離。

常見的有bit同步器,ram,clk-gating,clk mux等模塊。如下是單bit同步器的案例。

module  ip_bit_sync #( parameter      DATA_WDTH = 1    // bit width)(in

put  wire                     i_dst_clk,   // destination clockinput  wire [(DATA_WDTH-1):0]   i_src_din,   // data inputoutput wire [(DATA_WDTH-1):0]   o_dst_dout   // data output);`ifdef FOR_ASIC_DESIGNgenerategenvar  i;for ( i=0; i





審核編輯:劉清

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

    關注

    1629

    文章

    21736

    瀏覽量

    603419
  • 加速器
    +關注

    關注

    2

    文章

    799

    瀏覽量

    37874
  • 芯片設計
    +關注

    關注

    15

    文章

    1019

    瀏覽量

    54897
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59790
  • ASIC芯片
    +關注

    關注

    2

    文章

    91

    瀏覽量

    23770

原文標題:增加設計復用性的6種方法

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

收藏 人收藏

    評論

    相關推薦

    基于可測設計的雷達數字處理芯片的實現

    本文采用基于掃描路徑法的可測設計技術,對一款約750萬門級雷達芯片的實際電路進行可測設計。在設計中通過使用時鐘復用技術、時鐘電路處理技術以及IP隔離技術等
    的頭像 發表于 12-11 10:04 ?2446次閱讀
    基于可測<b class='flag-5'>性</b>設計的雷達數字處理<b class='flag-5'>芯片</b>的實現

    電磁兼容整改的幾種方法

    電磁兼容整改的幾種方法
    發表于 08-12 10:34

    電磁兼容主要的幾種整改方法

    首先,要根據實際情況對產品進行診斷,分析其干擾源所在及其相互干擾的途徑和方式。再根據分析結果,有針對的進行整改。一般來說主要的整改方法有如下幾種。 1 減弱干擾源 在找到干擾源的基礎上,可對干擾源
    發表于 05-30 08:06

    物聯網技術中幾種典型芯片NB-IOT的測試方法

    高速數字設計和測試綜述高質量的信號生成電源完整測試物聯網技術中幾種典型芯片NB-IOT的測試方法
    發表于 01-12 07:15

    代碼優化的目的是什么?具體方法包括哪幾種

    代碼優化的目的是什么?具體方法包括哪幾種代碼優化工作有什么創新點?
    發表于 06-03 06:17

    你知道可測試設計方法有哪幾種

    可掃描觸發器的作用有哪些?標準IEEE測試訪問方法主要有哪些應用領域?可測試設計方法有哪幾種?分別有哪些優點?
    發表于 08-09 07:23

    代碼如何復用

    工程。背景需求做任何事情都要有目標,朝著目標去前進。本文關注的目標如下:1. 代碼如何復用,達到多項目復用的目的2. 如何滿足多項目復用的前提下...
    發表于 08-11 07:26

    芯片分析的幾種方法與步驟

    半導體器件芯片分析的幾種方法與步驟。分析手段一般包括:c-sam,x-ray,sem掃描電鏡,EMMI微光顯微鏡等。
    發表于 05-02 15:36 ?1w次閱讀

    電磁兼容整改的幾種方法

    電磁兼容整改的幾種方法,這些方法不僅節約成本,而且是最有效的整改方法
    發表于 10-28 14:56 ?9次下載

    Linux的內核級代碼復用攻擊檢測

    內核級代碼復用攻擊,提出了一種基于細粒度控制流完整(CFD的檢測方法.首先根據代碼復用攻擊原理
    發表于 12-27 15:14 ?0次下載

    一種新穎的復用代碼精確快速溯源方法

    提出了一種新穎的復用代碼精確快速溯源方法。該方法以函數為單位,基于simhash與倒排索引技術,能在海量代碼中快速溯源相似函數。首先基于si
    發表于 01-31 14:23 ?0次下載
    一種新穎的<b class='flag-5'>復用</b><b class='flag-5'>代碼</b>精確快速溯源<b class='flag-5'>方法</b>

    談談STM32Fxx系列單片機引腳的復用功能資料下載

    電子發燒友網為你提供談談STM32Fxx系列單片機引腳的復用功能資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-13 08:46 ?15次下載
    <b class='flag-5'>談談</b>STM32Fxx系列單片機引腳的<b class='flag-5'>復用</b>功能資料下載

    嵌入式代碼的可移植和可復用

    可移植與我們平時所說的跨平臺能力比較相近,而軟件復用則是一種通過已有軟件子件來構建新產品軟件的能力。
    的頭像 發表于 11-10 09:06 ?1329次閱讀

    AN021 測量MCU代碼運行時間的幾種方法

    AN021 測量MCU代碼運行時間的幾種方法
    發表于 02-27 18:23 ?0次下載
    AN021 測量MCU<b class='flag-5'>代碼</b>運行時間的<b class='flag-5'>幾種方法</b>

    探討篇(三):代碼復用的智慧 - 提升架構的效率與可維護

    的案例,介紹幾種分布式架構中管理代碼復用的技術。包括代碼復制、共享代碼庫(jar包)、共享服務
    的頭像 發表于 12-27 15:58 ?118次閱讀
    探討篇(三):<b class='flag-5'>代碼</b><b class='flag-5'>復用</b>的智慧 - 提升架構的效率與可維護<b class='flag-5'>性</b>
    主站蜘蛛池模板: 日本卡一卡2卡3卡4精品卡无人区 日本口工福利漫画无遮挡 | 免费观看一级特黄三大片视频| 草逼网址| 天堂网址| 国产成人经典三级在线观看| 加勒比日本在线| 道区二区三区四区| 久久综合性| 久久精品免费观看久久| 不卡免费在线视频| 极品啪啪| 国产美女久久| 午夜精品久久久久久99热7777| 精品三级在线观看| 天天操你| 久久精品人人爽人人爽快| 男人边吃奶边爱边做视频日韩 | 四虎东方va私人影库在线观看| 日xxxx| 婷婷97狠狠的狠狠的爱| 日本午夜片| 天天摸天天看| 被男同桌摸内裤好爽视频| 久草热线视频| 成人夜色| 天堂bt在线种子网| 午夜影院免费观看| 同性男男肉交短文| 久久2017| 中国性猛交xxxx乱大交| 色多多视频在线观看| 天天夜约| 中文字幕在线乱码免费毛片| 国产一级特黄aa级特黄裸毛片| 婷婷六月丁香午夜爱爱| 色视频网站在线| 色视频免费| 亚洲黄色三级视频| 亚洲午夜在线视频| 正在播放羽月希与黑人bd在线| 国产91久久最新观看地址|