如果想要分析一個未知晶元的功能,可以採用什麼方法?

假設有個三無晶元,從電路上可以推測出是針對視頻信號的數字處理,其他一律不知。

我看到一個令人震驚的答案,「為了得到數字信號處理器的程序代碼,需要用硝酸腐蝕集成電路,然後用電子顯微鏡掃描晶元表面,再然後要麼標註顏色後手動解讀程序,要麼物理上修改電路然後解出程序和ROM」


其實我覺得很多人對反向有誤解,這裡只針對模擬和數模混合的晶元,其實我待過的,了解的analog幾個大廠,都會有人專門反向晶元,你以為都是自己白手起家做設計嗎。聖景和chipworks都是專門反向晶元的。不過前者已經解散,解散的部分人自己有組了個反向公司。反向的目的不是為了抄襲,很多時候是為了學習,避免自己走彎路。另外一大原因也是有時看別人有沒有抄襲自己東西。

其實模擬集成電路那些基本的東西有什麼好抄的,大家都一樣,主要是看看系統構架,信號鏈路的處理過程什麼的。牛的晶元有兩種,一種是每個模塊都極其經典,整個系統缺性能卓越。另外一種是充分發揮自己process潛力,反正你沒同樣工藝,抄了也不會比我好。估計你們能看出來,前者是fabless的套路,後者是idm的套路。

就我自己感覺,晶元重頭做起是個非常困難的事,如果你們有別人晶元參考就舒服多了。這根本不能算抄襲,因為細節的東西肯定不一樣。

當然也有過分的,全版圖copy,你還別說,有不少海龜干這個,這就有點不地道了。這種晶元一上量就會被別人告,不過呢,這些人該有的名利也都有了,這就是中國政府的尿性,不尊重知識產權,留下的是老外對中國工程師的惡劣印象,越是這樣,核心的東西就越不能讓中國人知道。

----

寫完發現有點跑題了,反正模擬和數模混合的很多晶元都還在.13以上的node,反向拍照都是固定套路,一層層腐蝕,一層層拍,軟體拼接好,以前聖景的軟體做得跟cadence 似的,快捷鍵都一樣。剩下的就算提取電路了,不過這裡稍微吐槽一下聖景,質量不高,到處是錯,反正它也不在了,嘿嘿,後來我都是只拍照,自己干,省錢多了。


題主你看到的那個答案純屬扯淡,一個「三無」晶元的反向幾乎就是不可能的,現在正常的反向一個別人的晶元,必須很仔細的研究data sheet,把人家的功能研究清楚了才能有力的指導自己的反向,你說的那個答案,純粹是一個根本沒搞過晶元反向設計的人頭腦里YY出來的,Y的真的好氣憤,不能這麼誤導人吶!

數字電路的反向是非常困難的,因為一般來說大規模的數字處理單元是通過程序綜合成晶體管級電路,自動出layout,模擬電路部分相對容易,因為規模也很小,模擬電路的layout都是手工設計的,管子數量有限,電路層次化之後有經驗的人很容易看出其功能,另外一點需要注意的是,反向別人的晶元,工藝的選擇是一個重點,因為你選擇的foundry可能和人家晶元的foundry不是一家,甚至工藝都不一樣,你能學來的是別人的電路結構,完全照抄別人的電路(包括管子尺寸的大小,電容的大小,電阻的寬長等等)可能造成電路根本不能正常工作。

------------------------------------------------------------------------------------------------------------

PS:晶元反向這門技術應該說是上不了檯面的東西,但是在中國,現在可以說是大行其道吧,有名的公司有芯願景和宜碩等等,他們專業搞晶元反向的,芯願景還自稱晶元反向行當的事實上的規則制定者··········(天吶,晶元方向都要制定規則了,也就是芯願景跟大家說,咱們幫別人抄襲,不能亂抄啊,咱們統一一下抄襲標準吧···········真乃天朝特色),看過芯願景的一本內部手冊,好厚的一本,專業講晶元反向,恩,好厲害的樣子。

@fengwei liu說我反駁他的答案,又自己不給出詳細的解答,我得說,這個要寫的詳細應該比較耗時吧,他的答案裡面開頭應用的那句話不知道是誰胡謅的,大家別信啊······

---------------------------

再添一句話,晶元反向特別適合現在中國國情,咱們水平有限,起步遲,技術積累少,咱不抄抄學學別人的東西,怎麼進步啊,是吧?


「為了得到數字信號處理器的程序代碼,需要用硝酸腐蝕集成電路,然後用電子顯微鏡掃描晶元表面,再然後要麼標註顏色後手動解讀程序,要麼物理上修改電路然後解出程序和ROM」

這種是為了逆向製造原晶元,如果只是分析功能應該有別的辦法,我查一下

大概問了一下朋友,要完全分析還是得弄開,看樣子太複雜的還是無解了。

從下面的資料可以看到,對數字電路的分析,只能做到小於10w門的程度,而現在隨便一個專用集成電路,百萬門不算多吧(查到最新的FPGA都做到4000多萬的等效門了),這種方法肯定局限性是很強的。

逆向設計非常適合模擬晶元設計,如ADC、DAC、鎖相環等模擬電路,因為模擬電路的設計往往靠經驗。此外,對於10萬門以下的數字電路也非常適合,對於混合信號電路來講,可以適合模擬部分的反向設計服務。在時間方面,普通的逆向設計往往需要3-5個月,而小於10萬門的數字電路逆向設計一般需要2-3個月。

逆向設計最重要的是要與正向設計進行無縫的銜接,因此,在設計過程中,除了大部分採用逆向提取軟體外,還要採用EDA廠商的軟體進行布局、驗證(例如Cadence)。目前在國內,除了芯願景公司,上海的聖景公司也提供逆向設計服務;國際上著名的逆向設計企業主要有Chipworks和Semiconducto Insights(SI)公司。逆向設計公司都能提供完整的解剖和電路提取服務,最欠缺的是對電路的深入分析,這就需要設計者來完成相關工作。

逆向設計流程

◆ 腐蝕

-塑料封裝外殼的腐蝕,可看到第一層金屬層

一般採用98%的硫酸加熱蒸煮

-金屬鋁層的腐蝕,可看到多晶和有源區

採用熱磷酸

-有多層金屬時,去除一層金屬後需要用氫氟酸去二氧化硅

-去多晶硅,染色看顯現 P阱和N阱

-其它細節處理,縱向結構解剖(SEM掃描電鏡/TEM透射電鏡或摻雜濃度曲線測試,一般需要IC解剖不作,都是標準工藝,分立器件一般需要做)

◆ 照相拼圖

-每腐蝕一層,分區域照相

-每一層金屬拼合圖,每一層多晶拼合圖,有源區拼合圖

-利用chiplogic軟體或其它逆向公司提供的軟體組件把拼合圖處理成軟體可識別的圖像文件

-圖片均是按比例處理,可用軟體直接測試MOS長寬比及最小線寬等

-處理後的圖片組在軟體中可同時

......


幹了沒幾年弱弱的菜鳥工程師怒答

題主說的就是典型的逆向設計流程.我國IC起步晚,早期沒有設計技術時國內早期公司不少是這樣做的.

腐蝕電路流程未知,之後的流程一般是通過工具得到門級網表.在知道大致功能的前提下,人工轉成rtl

目前逆向用的很少,一方面正向設計流程相當成熟了,另外隨著工藝進步,晶元尺寸變小,metal層數增加,帶shield等.另外方面設計也會考慮反破解(雜訊,隨機設計,冗餘設計等)

題外話.原則上所有晶元都能破解,只是成本上的考慮.比較值得破解的當然是軍品和金融卡相關這種.晶元攻擊方法有很多,題主說的僅是物理攻擊的一種.其他還有側道分析攻擊(功耗,電磁輻射,計時攻擊),擾動攻擊(給glitch),模板攻擊(對特定演算法有特殊攻擊方法).軍品和金融卡產品需要針對這些可能的攻擊在設計上特別處理,並需要過相關檢測.(當然,軍檢要比銀檢要求高很多.)

PS.題主是主機大神,關注很久.感覺問這個問題和遊戲機破解有關..個人入職後轉為正版黨,收藏不同主機遊戲已有半百,自私地希望遊戲機破解可以逐步衰弱 -, -


理論上所有晶元都能反向,但這僅僅是理論上。當晶元規模大到一定程度的時候,這招就不合算了。比如題主所說的這種視頻處理晶元,邏輯規模都很大,而且產品更新換代快,綜合考慮成本以及時間開銷,反向是不合算的,很有可能反向的預算都足夠把那個公司買了。。。


能逆向出來的晶元都是些小晶元,或者大晶元的關鍵部分,太耗費時間。可能正向開發更節省時間。

當然,沒有經驗的話,逆向一下看看老外怎麼搞的,作為自己的參考也是有必要的。

這類費時不討好的活交給在讀研究生去干。。。。。。

你要想逆向出來目前intel的最新cpu,憑那個結構複雜度和門數,可能要到下個世紀了


樓上說大規模數字電路沒法反向的,我知道我司有在做千萬等效門的數字電路反向的。匿了


業內有一種技術,對固定功能的晶元,明確地線引腳的情況下,將其他引腳對地進行電阻測量,取得各個管腳的阻值後,比對其他電路相關參數可推測出晶元型號,用這種方法做IC的通用檢測也是可以的。


x光拍照-去封裝拍照-一層一層去掉順便拍照-最後在襯底上染色當然還是拍照

總之跟痴漢差不多


那個過程就是逆向分析晶元,有專門的公司做這個。一般針對模擬電路,數字電路反向的不多。


大規模的數字IC要抄襲還是放棄吧。模擬的還可以一看


這不是分析,這是典型的抄程序啊,大部分能運行程序的晶元都有加密,典型的就是熔絲,為了抄出程序就要改變熔絲位然後探針讀取。


推薦閱讀:

verilog代碼如何debug?
Verilog 中定義信號為什麼要區分 wire 和 reg 兩種類型?
如何評價英偉達發布的 Tesla V100 計算卡?
片上網路NoC為何還沒有得到實際應用?
集成電路的工作原理是什麼?

TAG:晶元集成電路 |