精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

聊聊芯片設計有哪些活要做?

芯司機 ? 來源:芯司機 ? 2023-11-25 15:15 ? 次閱讀

芯片設計這個行當,從大的方面講,主要分模擬和數字兩大塊,而每大塊又分前端和后端,我想大部分同學對這個肯定是非常清楚的,下面就數字電路聊聊芯片設計的一些事情,就是芯片設計有哪些活要做,這并不是全面完整的系統介紹,只是個人的了解和總結, 希望拋磚引玉,也許不全面,不正確,歡迎大家指正和補充。

說到數字芯片,不能不說FPGA,這種是可編程的數字電路,用法原理也不說了,數字電路設計的目標就是把這些功能做成我們自己專用的ASIC/SoC,這樣無論面積、成本或者安全性等都能有保證。

從流程上講,數字芯片設計的大致步驟就是系統與功能定義、RTL實現驗證、 綜合及可測試性設計、ATPG仿真、時序分析到自動布局布線(APR),直至交付fab的GDS網表。

這個流程是可以反復迭代的,對于不同類型芯片,如純數ASIC或混合電路(mix-signal)及系統級芯片(SoC),每一步的方法和具體實施流程上可能又有所差異。下面就這些基本流程分步談一些主要問題。

系統設計主要涉及到功能定義及架構設計、總線架構的配置、模塊設計、數據流的分配、時鐘的設計等問題。總線包括模塊之間,模塊與MCU核之間,外部主機和芯片之間通信,或者測試需要等等一系列因素。時鐘涉及到數據流的規劃、通信接口或內部MCU的時鐘約定、工藝條件、功耗等因素。模塊需要明確接口和定義。

在系統級設計上, 特別是很多數模混合電路中或對功耗有特別要求的電路中,還要有電壓域的設計,不同模塊之間,功能模塊和接口之間可能都需要根據工藝條件、功耗要求設置不同的電壓。

無論是時鐘,還是電壓,都可以通過控制開關來實現功耗的要求,時鐘實現比較簡單,在大部分電路中都可以實現這種時鐘控制。電壓控制一般是實現在集成有電源管理芯片的較大規模芯片上,但未來趨勢是即使沒有電源管理芯片,電壓的gating也需要納入考慮范圍。

SoC系統設計上,一個重要的環節是MCU 內核的選型,現在常用的內核一般是ARM、較老的ARM7、ARM9等系列,較新的是三大系列Cortex -A 、R、M,具體的用途不做詳細描述,選定好后,根據需要進行設置,一般做硬件的人不需要對它的指令集了解太多,但是需要了解它的總線接口、數據總線、指令總線, 以及存儲系統的設計,一般需要安排ROMRAM分別作為指令和數據存儲器,由于ROM是不可更改的,一般也需要加入flash作為補丁程序寫入地,也可能需要外部存儲器或者DMA控制器來增加外部存儲空間。地址的分配是按照功能需要來進行的,現在有很多工具如synopsys的DesignKits可以產生外部總線代碼及進行地址分配。

第一步完成系統和功能定義后,要實施的就是RTL, RTL是專門描述硬件電路的工具語言,有Verilog和VHDL。RTL的特點就是硬件上的同時觸發性,不同于軟件的按順序執行,電路由時序邏輯和組合邏輯組成。時序邏輯在物理構成上就是一些寄存器,這些寄存器受時鐘控制,寄存器代表了電路中的數據或控制信號,這些信號受時鐘的驅動流動。組合邏輯是不受時鐘控制的電路塊,組合邏輯顧名思義通過一些信號的組合直接生成一些邏輯結果。

RTL設計中,一大問題是異步設計問題,異步數據的處理根據不同情況有很多方式,最簡單的對異步的電平信號,可以直接在新的時鐘域中加2級寄存器來隔離,避免不定態的發生。對于總線的處理或者脈沖的處理,則需要同步模塊。同步模快一般是指需要握手信號,就是前一級時鐘告訴采樣的時鐘——信號ok了,采樣的第二個時鐘再去采樣,采好后再告訴前一級時鐘,我搞定了~那樣前一級時鐘就可以換數據或做其他處理。

有一種情況就是前一級時鐘太快,造成第二級來不及傳遞信號,則需要加入FIFO作為隔離,就是讓那些數據先放好,我在慢慢來取。這個FIFO的設計涉及到讀寫地址的判斷,寫滿或讀空都需要作相應處理,讀寫地址之間的判斷只能在其中一個時鐘域中進行,這本身又涉及異步信號的處理問題。一般用格雷瑪解決,或者有些地方直接可以判斷地址高位, 這些方法的目的就是不能讓地址在比較的時候不穩定。

RTL設計中,時鐘本身的設計問題也要注意,我們在一個芯片中,盡量把時鐘產生電路放在一塊,主要是從綜合DFT的角度去考慮的,讓這些時鐘統一管理和約束。時鐘的分頻、切換也要專門處理,否則容易產生毛刺等事情。

RTL設計中還有很多需要注意的問題,比如可綜合性,還有要考慮到電路的面積,以及響應速度等等,這些問題是RTL coding的基礎問題。代碼寫完后,需要進行的是驗證工作,下面談談這方面的事情:

芯片驗證一般有這幾個層面,一個是RTL級或者Netlist( pre or post PR with SDF ),這個也是一般意義上的芯片驗證工作, 一個是FPGA級的,也是RTL,只不過download到FPGA中,借助硬件環境,也可以直接做應用實驗。

芯片驗證的工作量在芯片設計中占據了大部分的時間和精力,無論是哪種驗證,都需要搭建測試平臺(testbench),驗證平臺從軟件結構上模擬芯片的工作環境。既有清晰的連線結構,也有完成這些測試所需要的非結構性的函數或任務包。測試平臺中的被測試芯片是RTL級的,測試向量或者說施加的激勵可以是 verilog/VHDL,HDL語言本身就具有比較完善的行為級描述功能,也可以滿足絕大部分測試平臺的搭建和測試激勵的產生,當然我們面對更復雜的設計,或追求更高效率,也可以使用其它被編譯器兼容的語言, 如C/C++、SC、SV等等。

很顯然,測試激勵是有時間概念的,是按順序進入和流出芯片的,使用的這些非電路描述語言和功能和軟件幾乎是沒有區別的,所以驗證中也越來越多地使用軟件的一 些技術, 如面向對象的編程技術、SystemVerilog、 Specman E等。

無論傳統的驗證還是最新的驗證方法學,都需要追求驗證的收斂性,即驗證完全是自動化的檢測,除非debug, 我們無需通過波形判斷測試通過與否。

驗證系統中,使用的一般是存儲器的模型加上文本格式的代碼文件, 一般實現是直接通過系統讀入指令把文件讀入到存儲器模型中。(有些仿真工具可以直接通過選項導入,類似SDF文件,如工具nscim)。

仿真器可以直接寫出指令執行的log,以用于debug,不過現在有更先進的方式用于復雜SoC驗證, 如Codelink工具,能夠在原仿真器的基礎上,建立起MCU和HDL電路已經軟件的關系,通過展示波形和固件(firmware)源碼的鏈接進行更方便的debug。






審核編輯:劉清

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

    關注

    31

    文章

    5317

    瀏覽量

    120001
  • 芯片設計
    +關注

    關注

    15

    文章

    1001

    瀏覽量

    54811
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59697
  • SoC系統
    +關注

    關注

    0

    文章

    52

    瀏覽量

    10665
  • 電源管理芯片

    關注

    21

    文章

    719

    瀏覽量

    52567

原文標題:芯片設計有哪些活要做?

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

收藏 人收藏

    評論

    相關推薦

    聊聊std::move函數和std::forward函數

    今天我們聊聊Modern cpp的兩個非常重要的概念移動語義和轉發引用。
    的頭像 發表于 11-05 16:58 ?198次閱讀

    細胞的“聚光燈”——前沿細胞成像的案例分享

    進行推測,但已經失“”的細胞已經無法反應新陳代謝、信號傳導等生命活動,無法反應細胞的真實情況。因此細胞顯微術越來越受到生命科學研究學者的青睞,能夠在細胞仍然
    的頭像 發表于 10-24 08:04 ?214次閱讀
    <b class='flag-5'>活</b>細胞的“聚光燈”——前沿<b class='flag-5'>活</b>細胞成像的案例分享

    【軟件干貨】Android應用進程如何保

    在Android應用程序中,為了保證應用的正常運行和穩定性,有時需要對應用進程進行保。以下是一些實現進程保的方法:
    的頭像 發表于 10-15 17:05 ?286次閱讀
    【軟件干貨】Android應用進程如何保<b class='flag-5'>活</b>?

    要做一個100M帶寬的寬帶放大器,如何選芯片,如何搭電路?

    要做一個100M帶寬的寬帶放大器,放大倍數無要求,該如何選芯片,如何搭電路。
    發表于 09-11 08:13

    柱激光熔覆修復技術

    在現代工業領域,柱作為關鍵設備部件,其性能的穩定性和持久性直接關系到整個設備的運行效率和安全性。然而,由于工作環境惡劣、負載重、使用頻繁等因素,柱表面往往會出現磨損、腐蝕等問題,導致其性能下降
    的頭像 發表于 07-03 14:58 ?284次閱讀

    cyw43012的低功耗保是如何應用的?

    1、目前cyw43012的低功耗保是如何應用的如果主控不是psoc,是君正或者rk之類的arm平臺可以做遠程喚醒嗎。 2、cyw43012可以開放43012 rtos的部分開發嗎,如下虛擬網卡或者sdio裸數據傳輸的應用是否支持。 謝謝
    發表于 03-01 07:09

    聊聊半導體產品的8大封裝工藝

    今天我們聊聊半導體產品的封裝工藝,一提到“封裝”,大家不難就會想到“包裝”,但是,封裝可不能簡單的就認為等同于包裝的哦
    的頭像 發表于 02-23 14:42 ?3008次閱讀
    <b class='flag-5'>聊聊</b>半導體產品的8大封裝工藝

    封裝對高頻芯片計有何影響嗎?

    為了說明如何使用Process Configurator來探索封裝對芯片的影響,我們創建了一個簡單的布局示例:它由一個EM器件(一個單端八角形螺旋電感器)組成,該器件是使用RaptorX提取的。
    的頭像 發表于 02-18 17:21 ?2874次閱讀
    封裝對高頻<b class='flag-5'>芯片</b>設<b class='flag-5'>計有</b>何影響嗎?

    在TP芯片上開發的軟件想要運行在同型號的TE芯片上,需要做什么修改嗎?

    嗨,請教個問題,如在TP芯片上開發的軟件想要運行在同型號的TE芯片上,需要做什么修改嗎?
    發表于 02-01 08:01

    聊聊AMBA協議的evolution過程

    作為一名新時代的ICer,一定必定肯定聽說過AMBA協議,但是卻少有人知道AMBA協議的evolution過程,本文將大致聊聊Evolution of the ARM AMBA Specifications!
    的頭像 發表于 01-19 09:50 ?1141次閱讀
    <b class='flag-5'>聊聊</b>AMBA協議的evolution過程

    簡單聊聊半導體芯片

    在之前的文章里,小棗君說過,行業里通常會把半導體芯片分為數字芯片和模擬芯片。其中,數字芯片的市場規模占比較大,達到70%左右。
    的頭像 發表于 01-04 10:43 ?1165次閱讀
    簡單<b class='flag-5'>聊聊</b>半導體<b class='flag-5'>芯片</b>

    聊聊嵌入式軟件分層

    今天以控制LED閃爍為例,聊聊嵌入式軟件分層
    的頭像 發表于 12-28 09:22 ?636次閱讀

    聊聊Redis的使用案例

    今天我們來聊聊 Redis 的使用案例。
    的頭像 發表于 12-13 14:13 ?488次閱讀

    請問AD轉換芯片數字輸出A0-A11這12根數據線與FPGA連接時要做等長嗎?

    AD轉換芯片數字輸出A0-A11這12根數據線與FPGA連接時要做等長嗎? AD轉換芯片時鐘為70MHz,如果不需要,那么時鐘速率達到多少需要做等長,就是畫蛇形線!
    發表于 12-12 08:15

    硬件電路設計有這么多坑,如何少走彎路?看大牛怎么說

    硬件電路設計有這么多坑,如何少走彎路?看大牛怎么說
    的頭像 發表于 11-27 17:34 ?607次閱讀