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

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

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

3天內不再提示

IC設計錯誤案例分析

我快閉嘴 ? 來源:CSDN技術社區 ? 作者:IC小鴿 ? 2022-09-26 14:20 ? 次閱讀
IC設計錯誤案例:信號取反導致的錯誤

1、取反操作

如下所示,信號a取反賦值給信號b,底層邏輯是,如果a位寬少于b位寬,則a先高位補0,再進行取反,最后賦值給b。

wire [4:0] a;wire [5:0] b;assign b=~a ; 等價于 assign b= ~{1’b0,a[4:0]}; wire [4:0] a;wire [6:0] b;assign b=~a ; 等價于 assign b= ~{1’b0,1’b0,a[4:0]};

2、取反位寬不匹配錯誤案例

如果賦值語句或者條件判斷中用到了取反操作,一定需要先將取反值賦值相同的位寬 或者 與取反值做運算的信號一定要與原值位寬相同。

wire [2:0] mty_in  ;//invalid byte  in total 8 bytewire [3:0] vld_byte ;//valid byte in total 8 byte if( (~mty_in) <= 4’d5 )        data_updata_vld =1else        data_updata_vld =0;

在上面的代碼中,data_updata_vld永遠為0,因為(~mty_in) <= 4’d5比較時,會默認(~mty_in) 是4bit信號,因此(~mty_in)本質上是~{1’b0,a[2:0]},[3]bit為1 永遠大于4’d5.

3、如何檢查

此類問題

采用vcs仿真可以看出仿真結果不符合預期

采用是spyglass,會報warning/err,說明運算符作為位寬不匹配

IC設計錯誤案例:加法溢出導致的錯誤

1、加法溢出導致的功能錯誤

如下圖所示錯誤代碼中,當byte_add+byte_save等于256的時候,我們期望的的信號more_than_64應該為1,而實際上在錯誤代碼中(byte_add+byte_save)與8’d64比較,(byte_add+byte_save)可能會被理解為8’d0,即被理解成8bit信號,more_than_64等于0,功能錯誤。在芯片設計中,有可能因為EDA工具之間差異導致對(byte_add+byte_save)>8’d64的理解不一樣,導致VCS等工具RTL級仿真正確,而DC綜合后功能錯誤。例如:VCS將(byte_add+byte_save)理解為9bit的位寬,而綜合理解為8bit位寬。一旦綜合理解為8bit位寬,則會導致網表與我們預期功能不一致,而且網表仿真比較慢,一般很慢遍歷所有RTL級仿真用例,因此此類問題不容易發現。

2、如何避免加法溢出導致的功能錯誤

如下圖所示正確代碼中,將賦值給9bit的add_byte_total,并且將add_byte_total與9’d64比較,而不是8’d64比較,這樣就不會發生溢出截斷比較的情況。

//----------------------Error code begin-------------------------//wire         more_than_64 ;reg  [7:0]   byte_add  ;reg  [7:0]   byte_save ;reg  [7:0]  byte_update; assign more_than_64 = ( (byte_add+byte_save)  > 8'd64); always@(*)  if(more_than_64)    byte_update = (byte_add + byte_save ) - 8'd64 ;  else     byte_update = 8'd0;    //----------------------Error code end-------------------------//    //----------------------right and recommended code begin----------------------//wire         more_than_64 ;reg  [7:0]   byte_add  ;reg  [7:0]   byte_save ;reg  [7:0]   byte_update; wire [8:0]   add_byte_total ; assign     add_byte_total=(byte_add+byte_save); assign more_than_64 = ( add_byte_total  > 9'd64); always@(*)  if(more_than_64)    byte_update = (byte_add + byte_save ) - 8'd64 ;  else     byte_update = 8'd0;     //----------------------right and recommended code end----------------------//

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

    關注

    38

    文章

    1302

    瀏覽量

    104330
  • VCS
    VCS
    +關注

    關注

    0

    文章

    80

    瀏覽量

    9654

原文標題:IC設計錯誤案例:信號取反、加法溢出導致的錯誤

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

收藏 人收藏

    評論

    相關推薦

    模擬IC與數字IC對比分析

    模擬IC與數字IC對比分析     處理連續性的光、聲音、速度、溫度等自然模擬信號的IC被稱為模擬IC
    發表于 11-27 09:27 ?1411次閱讀

    IC分析工具

    本內容提供了 IC卡 的分析工具,現簡單演示如下
    發表于 07-11 15:31 ?316次下載
    <b class='flag-5'>IC</b>卡<b class='flag-5'>分析</b>工具

    硬件設計中的30個錯誤想法和原因分析

    硬件設計中的30個錯誤想法和原因分析
    發表于 12-15 18:25 ?97次下載

    iOS之友盟錯誤分析及解決辦法

    修復.jpg 前提 應用集成了友盟的bug收集功能。 友盟的錯誤分析錯誤列表里面有數據。 正題 錯誤詳情.png 錯誤列表 點擊進去基本上
    發表于 09-25 09:58 ?0次下載
    iOS之友盟<b class='flag-5'>錯誤</b><b class='flag-5'>分析</b>及解決辦法

    CAN總線局部錯誤及全局通知分析

    局部錯誤,全局通知是CAN總線錯誤類型中較為典型的一種,如何通過錯誤報文及波形快速定位錯誤原因呢?本文結合現場實測案例簡要分析
    的頭像 發表于 02-16 07:57 ?7314次閱讀
    CAN總線局部<b class='flag-5'>錯誤</b>及全局通知<b class='flag-5'>分析</b>

    西門子SETP7常見錯誤分析

    西門子STEP7編程常見錯誤分析解答。
    發表于 04-30 11:15 ?56次下載

    華秋PCB專業分析工具-獨家BOM錯誤分析

    華秋DFM-專業PCB設計分析軟件,20萬+工程師都在使用 1. 一鍵導入,自動出報價 2.一鍵分析23+項常見設計問題,解決設計隱患 3.智能拼版,節約單板采購成本 4.智能阻抗計算和反算 5. BOM智能分析,不再
    發表于 07-30 16:49 ?0次下載

    PCB專業分析工具-獨家BOM錯誤分析

    華秋DFM-專業PCB設計分析軟件,20萬+工程師都在使用 1. 一鍵導入,自動出報價 2.一鍵分析23+項常見設計問題,解決設計隱患 3.智能拼版,節約單板采購成本 4.智能阻抗計算和反算 5. BOM智能分析,不再
    發表于 08-09 16:52 ?0次下載

    Bash編程常見錯誤范例及原因分析

    Bash Pitfalls[1] 文章介紹了 40 多條日常 Bash 編程中,老手和新手都容易忽略的錯誤編程習慣。每條作者在給出錯誤的范例上,詳細分析與解釋錯誤的原因,同時給出正確
    的頭像 發表于 06-12 16:48 ?1722次閱讀

    使用靜態分析查找并發錯誤

      多線程為嵌入式開發人員必須考慮的潛在錯誤添加了全新的類別,使得查找各種錯誤變得更加困難。最新一代的靜態分析工具可以幫助解決這兩個問題。
    的頭像 發表于 06-19 10:00 ?1135次閱讀
    使用靜態<b class='flag-5'>分析</b>查找并發<b class='flag-5'>錯誤</b>

    使用靜態分析查找并發錯誤

      多線程為嵌入式開發人員必須考慮的潛在錯誤添加了全新的類別,使得查找各種錯誤變得更加困難。最新一代的靜態分析工具可以幫助解決這兩個問題。
    的頭像 發表于 07-09 07:10 ?934次閱讀
    使用靜態<b class='flag-5'>分析</b>查找并發<b class='flag-5'>錯誤</b>

    基于IC741構建的簡單有線間諜錯誤電路

    間諜蟲電路是當我們需要在不被注意的情況下收聽對話或簡單地監視一個人時使用的東西。通常,間諜錯誤電路是使用麥克風,放大器和揚聲器構建的。介質可以是有線的,也可以是無線的,具體取決于我們將要使用的應用。本文解釋了圍繞運算放大器IC741構建的簡單有線間諜
    的頭像 發表于 06-29 15:52 ?623次閱讀
    基于<b class='flag-5'>IC</b>741構建的簡單有線間諜<b class='flag-5'>錯誤</b>電路

    你一定要懂的CDC錯誤

    本文描述的跨時鐘錯誤在特定場景下,有些是允許的,甚至有些是正常設計。因此IC設計者想要確認跨時鐘錯誤需要分析應用場景。
    的頭像 發表于 07-24 17:00 ?3779次閱讀
    你一定要懂的CDC<b class='flag-5'>錯誤</b>

    電橋電路的常見錯誤分析

    電橋電路的常見錯誤分析主要包括以下幾個方面: 一、電阻值不準確 電阻值不準確是電橋電路常見的錯誤之一。這可能是由于電阻本身的誤差,如電阻的標稱值與實際值存在偏差,或者電阻老化、溫度變化等因素導致
    的頭像 發表于 01-09 10:08 ?180次閱讀

    基于Vector工具進行CAN協議錯誤幀的分析實踐

    廣播發送的短幀結構,還體現在其錯誤檢測機制上。通過總線數據以及總線波形來分析總線故障時,CAN協議錯誤檢測機制中豐富的錯誤幀類型能讓定位問題的效率更高。
    的頭像 發表于 01-15 10:03 ?119次閱讀
    基于Vector工具進行CAN協議<b class='flag-5'>錯誤</b>幀的<b class='flag-5'>分析</b>實踐
    主站蜘蛛池模板: 欧美xxxx性高清 | 手机看片自拍自拍自拍 | 日韩免费观看一级毛片看看 | 国产成人mv 在线播放 | 国产成人啪精品午夜在线播放 | 国产精品国产三级在线高清观看 | 久久的色偷偷 | 午夜欧美精品久久久久久久 | 天堂资源网 | 亚洲怡红院在线 | 国产亚洲综合一区 柠檬导航 | 日日噜噜夜夜狠狠va视频 | 精品免费久久久久久成人影院 | 在线免费观看你懂的 | 黄网站视频观看免费 | 日本不卡视频一区二区三区 | 免费观看黄a一级视频 | 久久精品伊人波多野结 | 欧美一级免费 | 久久久久国产午夜 | 9久久99久久久精品齐齐综合色圆 | v片视频| 色网站免费视频 | 午夜精品久久久久久久 | 亚洲欧美4444kkkk | 国产精品美女www爽爽爽视频 | 人人干人人看 | 色综合天天综合给合国产 | 天天干夜夜操视频 | 欧美午夜电影 | 国产三级日本三级在线播放 | 天堂网www天堂在线资源链接 | 日本丝瓜着色视频 | 亚洲 丝袜 制服 欧美 另类 | 四虎一影院区永久精品 | 欧美顶级xxxxbbbb | 日本a在线看 | 色丁香在线 | 狠狠狠色丁香婷婷综合激情 | 神马午夜嘿嘿 | 三级理论在线播放大全 |