10分鐘看懂數位IC是甚麼? (原創)

更新於 2024/07/30閱讀時間約 3 分鐘

加入前必須懂<數位IC設計>在做什麼?

IC設計產業中主要分成兩大區塊,數位IC及類比IC

對於電機系學生剛聽到IC設計的人來說,淺意識會認為IC設計需要用到龐大的電子學,

每天的工作內容就是在算cmos電流電壓,小訊號放大器等..

對於這些刻板印象來說是屬於類比IC的工作,

然而數位IC在做的事和上述大不同,

多半的數位IC工程師從入職到退休用到上述公式或觀念的少之又少,

在我進入相關產業後,考研究所時所唸的電子學都忘光了卻依然可以在這個領域中生存,

各位一定很好奇,那真正的數位IC設計工程師主要的技能是甚麼?

對於我來說

第一就是打嘴砲,夠會唬才可以活得久

再來就是寫code,和思考coding架構


嗯??數位ic設計也是在寫code?? 這樣和大家說寫c code 或python有甚麼差異?

在這邊幫忙簡單解答一下我個人的看法,

對於數位ic來說我們通常是寫verilog或是已經幾乎快失傳的HDL,

對於coding這件事來說和c code或python是一樣的,

同樣都是屬於高階語言需要用Compiler幫忙編譯轉換輸出,,同樣為了產出品質優良的程式都需要考慮時間複雜度或空間複雜度

差別差在寫code的邏輯不同,寫完的code輸出的對象不同

那這又是甚麼意思?


舉個實際的例子來說

在這個科技產業中把這件事情切割成了兩部分,大家常聽到的硬體及軟體,

verilog屬於硬體語言,c / python屬於軟體語言,都是在利用coding的技巧描述一些行為,

像for就是要跑迴圈,if就是要做判斷等,都是一樣的意思

差異點以整個系統運作的架構來說

verilog在做的事情是在做cpu本身,想辦法利用verilog寫出一個cpu的功能,輸入一筆instruction(command)就會輸出相對應的動作

c/python在做的事情則是在製造instruction(command)


舉個例子, 我用c/python寫了C=A+B,希望cpu會幫我做A+B的運算,把結果存在C裡面

寫完後會丟給compiler幫我把C=A+B轉成系統可以執行的語言((組合語言)上述的instruction),以後當我執行這個執行檔時只要輸入A和B,cpu就會幫我運算後丟出C的內容

以下圖來說軟體就是負責產生命令(左半部) 幫我把A和B相加後放到C內

硬體就是在接收命令後做出對應的行為 拿A address和B address的內容 相加運算後放到C address內

raw-image


另外一個觀點來看,

硬體是我們常在主機板,GPU的PCB版上看到一顆一顆黑色外表四四方方很多腳的東西,壞了或有BUG就只能丟掉,一次性的壽命

軟體就是買CPU或GPU的時候通常會付你一張光碟寫著驅動程式,有BUG只需要再下載新版就好,可以無限制的重新安裝


差不多到這邊應該對於數位ic設計和軟體的差異有些微的感覺,

下篇會再介紹一下數位ic和類比ic的差異又是甚麼,晚安祝各位有個好眠

數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科