EDA 是什麼?設計晶片的軟體,每一步在做什麼
EDA 是電子設計自動化(electronic design automation)的縮寫,就是設計晶片用的一整套電腦軟體,也常叫 EDA 工具、晶片設計軟體。晶片進晶圓廠之前,要先在電腦上設計好、檢查很多遍;從寫出電路要做的事,到交出去做光罩,每一步都有一類軟體在做。電路板的設計也用 EDA,這篇只講晶片。
設計的流程,「晶片是怎麼設計出來的?」講過;這篇講每一步用哪一類軟體、替人做了什麼。
為什麼不能用手畫?
很早以前,一顆晶片只有幾千個電晶體,圖真的是人一筆一筆畫的。大約在 1970 年代,電晶體多到畫不動,才開始有電腦自動擺放、拉線的軟體。
現在一顆手機晶片有上百億個電晶體。假設只有一百億個,一秒畫一個、不吃不睡,也要畫三百多年。畫完還要檢查每一條線有沒有太近、每一個訊號來不來得及,人更檢查不完。
軟體會自己設計晶片嗎?
不會。晶片要做什麼、多快、多省電,是人決定的。工程師把目標告訴軟體,例如「每一拍最多花多久」(晶片跟著一個固定的節拍動作,叫時脈);軟體在這些限制裡找做法,交出一份報告。哪裡不合格,工程師要看懂原因,改了再跑。
它像很會算的助手:快、不累,但不知道晶片是拿來做什麼的。
設計的每一步,用的是哪一類軟體?
開頭那張圖上,第 1 步的規格是人定的;下面從寫出行為算起,把「檢查」拆成兩步,最後加上做光罩之前的修正。
第 1 步:寫出行為(硬體描述語言)
工程師用硬體描述語言(HDL)把電路要做的事寫成文字。用文字寫,是因為「每一拍把這兩個數加起來」一行就寫完,畫成電晶體卻是一大片。寫錯了,後面的軟體只會照著錯的做,所以下一步要驗證。
第 2 步:模擬、驗證(模擬器)
模擬器在電腦上假裝電路已經做好,餵它各種輸入,看輸出跟規格一不一樣。在電腦上試,改一行字就能再試;真的做一次晶片,要好幾個月。錯誤一路帶到下線,就得改設計、重做光罩(見「晶片驗證是什麼?」)。
第 3 步:合成成邏輯閘(合成工具)
合成工具把寫好的行為,翻成邏輯閘接成的電路(見「邏輯閘是什麼?」),用的是元件庫:照這一代製程事先做好的各種小積木:邏輯閘,也有記住 0 或 1 的小電路(正反器這類),每一塊多快、多耗電,都先用電路模擬算好、存成表。同一件事有很多種接法,軟體查表比較,在速度、面積、耗電之間挑合乎目標的那一種。人一個一個接,接不完,也比不出哪一種好。
第 4 步:佈局繞線(佈局繞線工具)
這一類軟體把邏輯閘擺進晶片、把時脈送到每一處,再在好幾層導線裡拉線,做出每一層的圖形,叫版圖。擺得好不好很重要:線越長,訊號越慢、越耗電。擺不好,線繞不過去或訊號來不及,只能回頭重擺。
第 5 步:檢查時間和耗電(時序分析、功耗分析)
先從版圖算出每一條線的電阻和電容,再用時序分析把每一條路線最慢的情況算過:每一拍,訊號都要在下一拍之前到。不用一題一題出,所有路線一次算完;偏快、偏慢的角落、溫度高低,每一種都要各算一遍。功耗分析算這顆晶片用多少電、電源線上的電壓會不會掉太多;掉太多,電路會變慢,甚至出錯。
第 6 步:檢查做不做得出來、有沒有畫錯(規則檢查、LVS)
規則檢查軟體把版圖上每一個圖形,跟晶圓廠的設計規則一條一條比,例如兩條線最近能多近;另一種把版圖反推回電路,跟原本的比(LVS)。圖形多到人看不完,只有軟體能整顆比過。違反規則,做出來可能短路、斷線;連錯一條,晶片就不照設計動。
第 7 步:下線(交出版圖檔)
全部過了,把每一層的圖形存成檔案交給晶圓廠,叫下線(見「下線(tape-out)是什麼?」)。光罩廠照這份檔案做光罩,所以下線之後還想改,就得重做光罩。
第 8 步:做光罩之前的修正(OPC)
檔案交到做光罩的這一邊,還要用一類軟體把最細的那些層的圖故意改過,叫光學鄰近修正(見「OPC 是什麼?」)。因為晶片上的線比曝光用的光的波長還細,照原圖印,角會變圓、線端會縮短。不改,印出來的線就可能接不上。
實際上常是改了一步,後面就要重跑,來回好幾次。
晶圓廠的規則,怎麼接進設計軟體?
設計軟體自己不知道某一家晶圓廠的某一代製程能做多細。晶圓廠會把這些整理成一套檔案交給設計的人,常叫製程設計套件(PDK),像一本給軟體看的說明書:
- 設計規則和檢查用的規則檔:給第 6 步的規則檢查軟體用。
- 電晶體的模型:加多少電壓、流多少電流的數學式,給模擬軟體用;通常有中間值,也有偏快、偏慢的幾個角落。
- 每一層的資料:有哪幾層導線、各多厚,給佈局繞線和算電阻電容用。
- 元件庫:有時在裡面,有時由別人照這一代製程另外做。
模型是晶圓廠拿真的做出來的測試結構量過、調出來的;模型不準,軟體算得再仔細,做出來也不一樣。
為什麼要那麼多電腦一起算?
- 東西多:上百億個電晶體,每一條線都要算到。
- 情況多:偏快偏慢、冷熱、電壓高低,每種組合各算一遍。
- 一改就重算:改一個地方,時間和規則常要重算。
所以設計晶片的地方,常有一大群電腦專門跑這些軟體,一件事拆給很多台一起算。電路模擬算到每一個電晶體,最準也最慢,多半只拿來算小塊電路;整顆晶片改用查表的方法,才算得完。
類比電路也是軟體自動畫的嗎?
多半不是。數位電路可以拆成一樣高的小積木讓軟體排;類比電路處理聲音、電壓這種連續變化的訊號(見「類比晶片和數位晶片差在哪?」),每個電晶體多大、擺在哪裡,都會影響結果。
所以類比電路多半用畫圖的那一類軟體:工程師畫電路圖,用電路模擬一遍一遍調;版圖也常一筆一筆畫。畫完一樣要過規則檢查和 LVS。自動畫的工具在進步,但還很靠經驗。
在 fab24hr 裡
遊戲裡沒有設計晶片的位子,主線「晶片的一生」從下線之後開始:序章「下線」,助聽器晶片「螢火」的設計交給晶圓廠,做成一套光罩。
第 1 章「12 片怎麼分」,你是研發線的研發整合工程師。遊戲裡看不到軟體怎麼算;這一章,你要決定第一批 12 片裡哪幾片故意做偏快、偏慢,把設計時用模型算過的角落真的做出來,看設計撐不撐得住。第 10 章「待機電流」在封測廠:測試程式的上限,是照設計模擬定的第一版,晶圓邊緣那一圈的晶片剛好卡在上限附近。算的和做出來的,不一定一樣。
遊戲裡的公司、晶片、人物和數字都是虛構的;EDA 在做什麼,照公開的一般資料寫,每家公司的做法不一樣。其他行話可以到「半導體晶圓廠的行話,白話解釋」查。
在遊戲裡你會在哪裡遇到它遊戲裡看不到設計軟體。主線「晶片的一生」第 1 章「12 片怎麼分」,你在研發線上決定第一批 12 片裡哪幾片故意做偏快、偏慢(角落),看設計撐不撐得住。第 10 章「待機電流」,測試程式的上限是照設計模擬定的第一版。
在 fab24hr 的主線「晶片的一生」裡,設計已經在電腦上算過、下線了;你在研發線上,看真的做出來的晶片撐不撐得住。
從第 1 章開始:把設計時算過的角落真的做出來給老師:這一篇可以搭配「在課堂上玩 fab24hr」用在課堂上。
引用這篇〈EDA 是什麼?設計晶片的軟體,每一步在做什麼〉,fab24hr,更新。https://fab24hr.com/blog/what-is-eda/
課堂與非營利可以免費使用,投影、放進講義、印給學生都可以,請註明 fab24hr;不能販售,也不能改成自己的作品。 看到錯誤?回報問題
其他文章
晶片驗證是什麼?下線前怎麼確定設計是對的
下線(tape-out)是什麼?晶片設計交出去之後,發生什麼事
晶背供電是什麼?晶片的電源線為什麼要搬到晶圓背面
記憶體牆是什麼?為什麼晶片算得快,資料卻送不夠快
這個網站的其他頁
- fab24hr 是什麼?:兩種玩法、四個班、常見問題、資料來源
- 晶片的一生:一顆晶片從下線、試產、量產、晶圓測試、封裝到出貨,每一段在做什麼
- 晶圓廠工程師的一天:PE、EE、PIE、製造部的分工,一天的時間線
- 晶圓廠裡有誰:技術員、製造部、製程、設備、廠務、整合、品保、生管、光罩、研發、課長、設備商,到封測廠的測試與封裝:每個角色一天怎麼過
- 半導體晶圓廠的行話,白話解釋:MO、Hold、Q-time、OCAP 這些行話,一個一句白話
- 半導體入門:跟著晶片的一生:半導體入門課程:跟著晶片的一生,圖解講義、投影片、必讀文章、3D 機台與討論題,自學或上課都能用
- 晶圓廠的機台,拆開來看:31 種半導體設備在做什麼(蝕刻機、曝光機、CMP、天車、封膠機…),每一台都能打開 3D 模型拆開來看
- 在課堂上玩 fab24hr:半導體教案:20/40 分鐘課程流程、一章或一區一節課(3D 機台、遊戲、文章)、討論題、學習單、老師常問
- 介紹與媒體素材:宣傳影片、遊戲畫面、介紹文字與基本資料