在集成電路設計領域(數字,模擬),人工智慧有無可能取代人類?

今天,阿發狗擊敗了李世石,讓人們感慨科技進步的神速。

正如@崔揚也所說:

即便最科學、最樂觀的現有猜想,可能都無法跟得上未來科技進步的速度。

即便最刻苦、最漫長的傳統付出,可能都無法比的上未來科技在一瞬間的成果。

那麼在集成電路設計領域(模擬,數字),人類有無可能被人工智慧取代?

在哪些領域,人工智慧更可能取代人類?


謝謝邀請~

這幾天經常在想這個問題,因為不清楚從何說起,雖然以前專業是IC領域,同時也學過和做過圖像處理方面的課題。

先從幾年前的一堂課說起吧。當時老師開小差,在課堂上和我們說,現在怎麼好多同學都喜歡碼代碼(verilog/VHDL),不去研究一些器件材料領域,或者電路驗證演算法的優化,或者布局布線的什麼蟻群最短路線,寄生參數最小化等等,因為現在代碼都可以自動生成了。。。。。。

當時聽到這句話,想了想,好像哪裡不太對!!!後面不知道咋嘀就站起來(請允許我偷偷笑幾聲,當時喜歡的女生也在上這門課,哈哈)。我說,老師,不是這樣的,代碼實現在電路設計(指晶元、FPGA等)中占的比重較小,重要的是,your idea——設計電路的思想。就比如現在SystemC是能生成Verilog/VHDL代碼,但是這些電路思想是由人來完成的,機器只是工具,快速幫你實現的工具。重要的是設計思想設計模式

關於設計電路,比如結構規劃,模塊劃分,功能實現,功率優化,時鐘樹布局,電磁干擾,靜電效應,襯底漏電,電流電壓浪湧現象等等,這些機器能自動化完成嗎?所有這些都必須要工程師的重要參與,藉助軟體只是提高實現的效率,像分析軟體處理得出的數據,都是離不開優秀的工程師的。看看IC的發展史——https://zh.wikipedia.org/wiki/%E9%9B%86%E6%88%90%E7%94%B5%E8%B7%AF,以及EDA工具——https://zh.wikipedia.org/wiki/%E9%9B%BB%E5%AD%90%E8%A8%AD%E8%A8%88%E8%87%AA%E5%8B%95%E5%8C%96的出現,對比兩者的時間差。不需要EDA,集成電路也是可以設計出來的,只是,現在動不動就上E門,上十E門的晶體管,no EDA,nobody can do it。人一生只能活3 153 600 000秒左右,以一百歲為例,不吃不睡,一秒左右一個管子。

關於人工智慧——https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD,先看看什麼是AI(Artificial Inteligence),人工+智能。目前人類在這一領域的探索還處於非常淺的階段,雖然歷經幾十年,但由於涉及的面很廣,如認知學、心理學、模式識別、計算機科學、控制論、集成電路、哲學等等,人工智慧的前進離不開這些學科的發展和突破。舉個例子:機器人識別物體,並說出其名稱。就是這麼一個在所有正常人來說很簡單的事情,對於機器人來說,卻是件極難圓滿完成——李飛飛:如何教計算機理解圖片,這是屬於認知領域,也是模式識別能否取得重要突破所必須完成的一步。還有,作為已知地球上「最智慧」的生物,對於其大腦的構造及其功能也處於原始狀態。碼字此處,想起了佛洛伊德關於關於意識的三個層次的假設——意識、前意識和無意識——https://book.douban.com/subject/4821903/,每個人大腦裡面具體在幹嘛,在想什麼竟然本人自我都不清晰,想想就有點累,but so amazing!!!!!!!

回到IC領域,是否會被人工智慧取代這個問題。只要設計思想還是由工程師主導完成的,而EDA工具還是純碎的工具,其各種工作狀態由工程師來調配,設置初始條件,邊界條件等等,就不會被取代。但是,對於晶元設計和製造難度不變的條件下,工具得強大會降低工程師的總體需求量。

以前上學時,很喜歡和同學下象棋,他吃我棋子時很喜歡發表某句口頭禪——人和猩猩的區別在於使用工具上。這句話讓我一直「耿耿於懷」,後面在看信號與系統,模電,模集,數集,射頻,控制論等相關課程後,這些書籍中有個相同的字眼——反饋!然後某天就頓悟了,人類進步的速率和使用工具成正相關,嚴格來說,就是人類進步的速率和使用工具製造新工具的能力成嚴格的正相關,也許成線性,二次方,指數,超指數關係。用工具製造工具,再用製造出來的工具製造新的工具——正反饋。而在自然界中了解的存在正反饋現象不多——晶振和核爆。用晶元製造晶元,通過人腦研究人腦,好有意思啊!!!

可能全文看起來非常乏味,和問題也有點不搭邊,但還是請看完的知乎ers點個贊吧~~~~~~


首先我們要清楚什麼是人工智慧?我認為寬泛的人工智慧就是機器自動解決問題的能力,或者說機器在解決問題的過程中需要多少人工干預。舉個例子,現在有日本和中國的人口數據,還有兩台機器:機器A和機器B。你想比較中國和日本哪個國家居民身高較高。對於機器A,你直接輸入問題:「請告訴我日本居民身高相比中國居民如何」,機器A會自動調用日本和中國居民的身高數據,取平均值並告訴你中國居民平均身高較高,而機器B你需要告訴它:把中國居民的身高都加起來,除以樣本數,得到中國居民平均身高,然後把日本居民身高都加起來,除以樣本數,得到日本居民平均身高,比較兩個平均身高,然後告訴我哪個平均身高比較大。應該說解決這個問題需要的運算機器A和機器B都能完成,但明顯機器A比較智能。

對於數字電路,舉例來說要設計一個計數器,最早設計需要工程師自己根據需求畫卡諾圖搭電路,需要幾個觸發器幾個與非門怎麼連接都得自己設計。後來自動綜合工具出現後,主流設計流程變成了工程師輸入用硬體描述語言(如verilog)描述的rtl級設計,由機器把verilog翻譯成實際電路。這可以說是人工智慧在電路方向的重大進展。工程師需要做的是用verilog語言寫「當時鐘沿來的時候,請把寄存器a的值加1;如果寄存器a的值到達最大值則重置到0」。目前智能設計最前沿的方向是高層綜合(high level synthesis),即輸入C++輸出verilog或者更進一步輸出基於特定工藝庫的電路實現,這樣工程師只要寫個循環就能實現計數器。

人工智慧在數字電路方面的作用巨大,有兩個原因。第一,硬體描述語言是完整的。「完整」的意思是,任何可以用數字電路能實現的功能都可以用抽象verilog語言來描述。第二,數字電路設計目前都是基於標準單元庫,非常規整。智能工具可以根據設計約束把高級硬體描述語言翻譯成由標準單元庫裡面的單元實現的電路。比如你輸入一個3-8解碼器的verilog描述,智能工具輸出由tsmc 28nm lvt std lib實現的電路網表(其中包括一堆與非門)。

對於模擬電路,智能工具面臨幾個問題。第一,針對模擬電路的硬體描述語言不可能同時做到抽象和完整。舉例來說,目前的模擬電路硬體描述語言是spice,它是完整的但並不抽象:一個由spice描述的電路和一個由電路圖描述的電路是一模一樣的,每個spice語言描述的元件與電路圖是一一對應的。但verilog語言描述的數字電路可能對應無數種具體實現(例如你寫a=b+c;可能會被綜合成行波加法器,進位旁路加法器,Kogge-Stone加法器等等,取決於你的設計約束)。但如果模擬電路的硬體描述語言是抽象的,就不可能是完整的。比如你要用抽象的語言描述一個放大器,該怎麼描述?你可以用增益,帶寬,輸入輸出阻抗來大致描述,但是這樣必然是不完整的。先不說工程師不可能輸入放大器在每一個頻點的增益,帶寬,輸入輸出阻抗;請問放大器的延遲怎麼描述?大信號特徵怎麼描述?雜訊怎麼描述?隨著新電路的加入,會有新的性能指標需要被描述,所以針對模擬電路的硬體模擬語言不太可能是抽象且完整的。

如果我們退而求其次,不求數學上的完美,只求智能工具幫我們自動把硬體描述語言映射到具體電路實現,那麼模擬電路的機器智能設計也是可能的。我們需要的是一個模擬電路的IP單元庫,每個IP的特性都很要很清楚。於是你用硬體描述語言說我需要一個解析度8位,有效位數6位,帶寬100MHz,功耗50 mW,面積0.5mmx0.5mm的ADC,智能工具根據你的約束,從IP庫裡面給你選了一個SAR ADC。更進一步,你可以說我需要一個工作在2.4 GHz的接收機,雜訊係數是4 dB,IIP3是10 dBm,功耗限制是20 mW,面積小於1mm^2,工具根據你的約束自動分析從單元庫里選擇合適的LNA,mixer和LPF幫你生成電路。只是這樣做你就沒法用各種trick,比如你很難教會智能工具什麼時候應該用Cartesian feedback,什麼時候應該在某個節點加一個harmonic trap。我覺得以目前的電路設計方法論,模擬電路用人工智慧設計出一個能用的電路是完全可行的,但是要設計出一個高性能的非常難。


模擬取決於fab的工藝庫有多完備靠譜。數字和問什麼時候能實現計算機自動編程是一個道理,甚至更簡單因為需求更明確,這一點要比通用的自動化編程取代程序員更適合。


這個我覺得完全可能,但是是在軟體工程之後吧。

1,軟體是一個開放的社區,而集成電路很封閉。

2,其實集成電路在很多領域是CAD、EDA,這個已經比軟體強多了。

3,目前人工智慧強於模塊識別,弱於推理,所以集成電路還算不立刻危險。

在我看來,後端和前端的東西,95%可以人工智慧替代,而設計中90%的部分,

設計只是要求work,而不是最優。

所以,集成電路目前完全可以替代90%的人力。

但是,一,這個市場很小,未必有人投精力投資金來做。

二,軟體才是更大且更明顯收益的市場。


還真是想過這個問題。一想就不寒而慄,ai如果開始自己給自己設計處理器和感測器,進一步定製化下一代晶元,這是不是已經可以叫生命了。因為具備了繁衍的特徵。

不過作為一個模擬老男人,看了看面前一個adc的模擬一個typ要好幾天,似乎還能再安心的活段時間,不被天網幹掉。


謝邀,前幾天寫的關於AI與後端工程師職業發展的文章也適合本問題。

1、後端工程師的職業發展(以後端PlaceRouting為例)

1)剛進入行業的新人都從跑小的模塊做起,在這個階段會了解基本的後端流程,優化方法和流片標準。

2)對於小的模塊遊刃有餘後,可以開始做一些追求高性能,小面積,低功耗的模塊,比如CPU,GPU,VPU.

3) 接下來做一些低功耗流程的單晶元,這樣會熟悉一顆完整晶元所需要的功耗分析,IRDROP分析,ESD規劃等等。

4) 做大項目的TOP (&>30M), 在這個階段可以學習到模塊劃分,時序規劃,bump routing,等大型項目當中才能遇到的問題。

5) 如果你想更進一步,就在做大項目的同時去了解封裝,了解測試,了解運營,有合適的機會,就可以晉陞到項目經理,負責一顆晶元從前到後的實現,生產,測試。

6) 在成功運營幾顆大型晶元以後,就可以選擇進入一些初創公司成為研發總監,爭取成功上市。

一般這就是比較順利的職業發展路線,需要比較好的機遇和自己的努力,一般工程師停留在4) 的階段就很難上去了。回到AI技術,我們可以看到,到了第四級,更重要的是對項目的把握和整個項目的管理,基本也就和AI不太搭邊了。

2、AI技術在後端技術中的應用

在我看來,AI在2)當中的應用場景更為廣闊。實際上在我們的後端流程中,由於計算能力的限制,我們做了很多的簡化,比如一個典型的例子,是在做布局時我們不會做真正的布線,我們會做一種簡化的布線(global routing),希望用它的結果來指導我們布局,因為真正的布線會花費十倍以上的時間,對於我們是無法接受的。但既然使用了簡化模型,簡化模型和最終結果的一致性就非常的重要了,在先進工藝裡面尤其困難。

在後端的物理實現中,一些複雜的步驟,比如說placement,則十分困難。要檢查一致性是很容易的事情,而得到一個函數的最優解或者近似最優解是非常困難的事情,同時這個最優解的限制條件還很多,面積最小,時序最好,功耗最低,可以繞線,符合工藝擺放要求。再在比如說,布局階段產生的Congestion往往會惡化時序Timing,並影響設計的Routability,同時導致布線時可能產生Short或Detour,那麼如何選取合適的布局和布線才能減少congestion?

在機器學習演算法引入之前,CAD領域通常都採用啟發式演算法對以上問題進行求解。啟發式演算法嘗試基於隨機選擇,在可接受的代價(比如計算時間和空間)下給出待解決組合優化問題的可行解。常見的啟發式演算法包括禁忌搜索(Taboo Search)、模擬退火(Simulated Annealing)、遺傳演算法(Genetic Algorithm)、人工神經網路(Artificial Neural Networks)等。各種啟發式演算法在優化機制方面存在著一定的差異,但在優化流程上十分相似。這些演算法本身都是鄰域搜索(Local Search)結構,即演算法都是從一個或者一組初始解出發,在關鍵參數的控制下通過鄰域函數產生若干個鄰域解,根據一定的接受準則(比如確定性、概率性或混沌方式)來更新當前狀態,而後根據當前狀態調整關鍵參數。重複上述搜索步驟直到滿足演算法的收斂準則,最終得到問題的優化結果。尤其是模擬退火演算法,自從該演算法被引入VLSI領域後,誕生了大量基於其的布局布線優化演算法。

對於EDA工具的使用者——後端工程師而言,這些演算法的優化效果往往就像玄學一樣,很難選取合適的搜索步長,並且多次計算結果往往並不能得到同一個解,甚至有時候得到劣解。此外,讓廣大後端工程師苦不堪言的是,隨著摩爾定律的推進,晶元中集成的晶體管數以億計而且還在以指數級進行增長,由此導致數據的處理時間以小時為量級。

目前AI技術在信息技術的其他領域的發展欣欣向榮,而在VLSI CAD領域還鮮有耳聞。

2017年ISSCC會議中,台積電展示了兩個將機器學習應用於晶片設計的案例,其中一個案例即是將機器學習演算法運用到了congestion預測中,演講內容顯示該方面將晶元速度提升了40MHz。另一個案例是能產生2萬個時脈閘控單元(clock gating cell)的先進設計,在傳統的演算法中,因為規模太大,設計工程師會被迫採取全局約束(global constraint),而台積電展示了一個機器學習模型,能預測單元中的延遲並設定其個別限制。(本段文字引用自eetop公眾號)

晶圓廠和EDA公司天生具備引入AI的基因,大數據處理、智能優化演算法等問題都需要有更優、更新的演算法來替代。我們期待著AI能夠造福廣大後端工程師,也更希望運用AI技術,發現新問題,開創新的工作機會。

-------------------------給自己live做個廣告---------------------------

---即將進行的live

知乎live—Digital IC 設計職位筆試題分析(上):知乎 Live - 全新的實時問答

知乎live—Digital IC 設計職位筆試題分析(下):知乎 Live - 全新的實時問答

---我們的專欄

觀芯志:知乎專欄

---往期live

半導體先進工藝的器件結構和挑戰 : 知乎 Live - 全新的實時問答

你不了解的微電子行業 : 知乎 Live - 全新的實時問答

初學者在數字 IC 設計學習中易進入的誤區 : 知乎 Live - 全新的實時問答

從零學習 TCL 腳本 :知乎 Live - 全新的實時問答

TCL 腳本:數字 IC 設計應用篇:知乎 Live - 全新的實時問答


複雜的軟體就是人工智慧嗎?

人工智慧很大程度上是軟體實現,但是軟體不是人工智慧吧。

民航飛機的軟體系統是人工智慧嗎?各種專業的CAD/CAM軟體包括IC設計的EDA軟體是人工智慧嗎?

這些只是跟複雜度沾邊,跟智能沾不上邊。智能的一個最大特徵必須是:系統內部必須具有統計或者說概率的特徵。所有的CAD工具都恰恰是確定性的,容不得一星半點的隨機性或者概率性在裡面。所以EDA工具是不可以視為普通意義上的人工智慧軟體的。

集成電路設計領域,人工智慧有無可能取代人類?

在設計領域,人工智慧暫時無所作為。除非人工智慧有自己的思想或者哲學。他們想要根據自己的觀念來改造世界。這是任何「設計」的前提。

不能取代,能幫什麼忙嗎?

在IC設計領域,EDA工具最近十年基本上是原地踏步。一個數字IC設計工程師,他可以使用10年甚至是15年前的方法和知識來做事情,完全毫無違和感的。晶元規模是變大了,晶元工藝線寬是變小了,但是設計方法學的本質沒有任何變化。

VerilogHDL, Verilog2001, SystemVerilog, SystemC, C 。語言是在往前進化,但是綜合工具還是傻傻的,可被綜合的行為描述還是停留在verilog時代。

我估計:在未來的10年,主流的設計方法學仍然不會有大的改觀,會變化的是模擬驗證工具。但只是複雜度,和便易性方面的提高。

複雜EDA軟體(不是人工智慧)能幫到的忙最有可能在模擬驗證領域,而不是在高級綜合領域。有可能在你寫代碼的同時工具會自動幫你完成驗證。

可以調查一下,目前的數字IC工程在做代碼設計時使用了什麼便捷工具嗎? 我估計,絕大多數都是在一個普通的editor上一個字母一個字母地敲。想想都覺得很原始。

難道Editor不能把我腦袋裡面想的語句塊直接顯示出來嗎?退而求其次,Editor有關鍵字補全功能,為什麼不能有時序邏輯塊補全,組合邏輯塊補全,模塊例化,模塊埠聲明補全功能? 手工把有幾百個信號埠的模塊連接起來的工作是最傻的工作了,可惜軟體不能幫這個忙。

連一個Editor都這麼傻,還談什麼人工智慧設計!遠著呢。如果有誰有興趣做一個聰明一點的Editor,幫IC設計工程師減少重複勞動,可以跟我聯繫。


數字電路的話還是有可能的,因為FPGA的存在,因為晶元可以自學習形成相應的功能在FPGA中實現,這也許就會代替人吧。但是在模擬射頻方面,幾乎完全沒可能,這方面人自己都沒有完全搞明白,很大程度上都是靠經驗,而且跟實際電路相關很大,計算機做出來模擬射頻電路的實際不一定能用。

而且IC是個大工程,不是簡單的在電腦上寫個代碼設計一個電路,還有後面的各種模擬驗證,版圖布局布線,人工智慧無可能。


我都不指望它們能代替人類了,只要稍微聰明一點,稍微有一點我就能能輕鬆不少了。


上網搜「analog circuit synthesis」,有真相。


不要臉地來回答了

表示在數字集成電路方面,人工智慧怕是已經佔了很大的部分。看工作量就知道,所有的模擬,綜合,甚至到版圖繪製都可以全都使用工具完成,人的參與其實已經非常小了。

模擬集成電路方面,我覺得至少當前還是很難的。數字電路之所以計算機參與度那麼高,我覺得主要是因為下面幾個原因:(1)數字電路的信號是離散的(0和1,信號形式如此簡單,直接導致電路就簡單。by the way,其實就是一堆數字電路自己設計自己,這樣想來好像挺可怕的,機器人足夠智能就能自主大規模量產);(2)數字電路的設計自由度沒有那麼大(數字電路在意的是功能的實現,電路設計主要矛盾是功耗和速度之間的tradeoff,不需要多智能的tradeoff);(3)數字電路的設計很規範容易提取特徵(設計過程高度抽象化,最小項之和什麼的,幾乎非常死板。by the way,我第一次接觸FPGA就覺得非常神奇,FPGA是怎麼做到可編程的)。

模擬電路設計就沒有那麼簡單了,(1)模擬電路的信號是模擬的,連續的,信號形式本身就複雜(低頻可以採樣到數字域處理,然而RF就不是那麼好解決了);(2)設計自由度很高,在意的參數更多(除了功耗和速度,還有雜訊,線性度,swing等等各種參數,多個相關參數之間的tradeoff的複雜度是指數級的);(3)模擬電路的設計非常複雜(體現在模擬電路中,每個晶體管的功能非常豐富,一點點參數的改變就可能有很大的不同;數字電路都不提晶體管,都是至少從門級開始,可見裡面每個晶體管的功能並沒有發揮到極致,也不需要發揮到極致,因為反正我們只處理0和1。所以數字電路動不動就成千上萬晶體管,而模擬電路一定不用這麼大規模,其實就是數字電路在犧牲面積和信號形式把電路設計變簡單)。

最後借用一下一句話,數字電路的設計是科學,模擬電路的設計是藝術。計算機可能在設計科學上勝過人類,但是在藝術設計上永遠不會超越人類。所以以後要是真的發生了人工智慧取代人類,人類一定是靠人文、藝術、社會等方面的優勢戰勝人工智慧。


取代需要看情況,強人工智慧的資源消耗不見得會比人類少。


有可能,我們實驗室旁邊有一個項目組就在從事這方面的工作。不過,現階段,仍然處於很初級的狀態。樂觀的說,有可能。因為萬事皆有可能,不過應該還有非常遠的路要走。


是我的理解有偏差么,為啥覺得好多答主把自動化當做人工智慧了


應該可以,只是世界這麼大,阿爾法狗現在正往醫藥,生物領域攻城略地,一時無暇顧及IC產業而已。

如果模型更複雜一點,IC產業的工資再低第一,那麼AI模擬的時間就要長几倍,模擬的價格再貴點,就不會替代人類了。

這場革命來臨的時候,清潔工和保安應該是最安全的吧,因為機器人更貴啊


其實不光在集成電路領域,在任何領域,人工智慧都是可能的。 現在雖然沒有看到人工智慧真正的智能,包括谷歌的alphago,只是體現了計算能力。但是人工智慧是可能的,非常可能的。只是現在的科學家沒有走在正確的道路上,人剛生下來其實就是個機器,通過人類社會訓練變成了人。哪天人類第一次花費數年時間來訓練一個機器,把他當人,讓他擁有人的感官,知覺和理解能力,那麼人工智慧就變成人了,而且是比人高級的物種。再加上一些永不停歇的能源出現時,一個真正的物種就誕生了。人其實沒太多優勢,人類的所有行為都是可以被訓練的,包括創新能力。雖然那一天離現在有點遠。。。但是很可能的。將來機器人的世界首先以擬人的方式出現並服務人類,最終可能是人類的敵人。

所以,答案是所有領域都可能被取代,最可能取代人類的領域是經濟效益最明顯的領域,比如:體力勞動,生產線重複勞動等,效益越大越先被取代,效益越小越後被取代,比如:考古。


我覺得不可能,至少在數字電路設計方面不可能。因為歸根結底人工智慧所用的這些演算法基本上都是建立在統計學的基礎上的。它最大的問題是具有不確定性。例如,SVM可以通過訓練模擬異或邏輯,但是這個異或邏輯不是永遠都會產生的。假設它能產生異或邏輯的概率是99.999%。那麼你在進行FPGA或者ASIC設計時敢用么?我是不敢用。就算加入人工干預來防止那0.001%的錯誤,那也是極不現實的。因為首先你不能保證它產生的代碼是人為可讀的(用過HLS的小夥伴應該都看過工具生成的代碼吧),其次由機器產生的HDL代碼中幾乎每一句都有可能出錯,你真的要一句句去檢查這些代碼么?

最後推廣一下新開的公眾號:ICNnotes

有關FPGA和IC設計的基礎知識分享,歡迎關注。


推薦閱讀:

怎麼樣理解SVM中的hinge-loss?
如何評價猿輔導分散式機器學習庫ytk-learn、分散式通信庫ytk-mp4j?
關於L1、L2正規化的一些疑問?
2012CNN 論文中所提出的網路結構,為什麼前兩個卷積有pooling層,而後邊的三個卷積層都沒有?

TAG:人工智慧 | 機器學習 | 微電子 | 晶元集成電路 | 深度學習DeepLearning |