牛人分享 ▏參與流片是一種怎樣的體驗(yàn)!
2017-05-17 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
所有項(xiàng)目的前期都是陽光明媚,四五月我時(shí)常和師弟們?cè)谛@的樹蔭下手握可樂,一邊談風(fēng)和日麗,一邊目光保護(hù)文學(xué)科的學(xué)妹們來來往往。研究室里也歡聲笑語常在,我問學(xué)弟們Verilog寫到哪了,他們問我架構(gòu)定下了嗎,我問助教什么制程die size多大,然而大家都不知道,互道還早還早,相視一笑哈哈哈。
轉(zhuǎn)眼六月,boss已經(jīng)決定將后端外包,我們大松了口氣。之前有過兩次自己layout失敗的經(jīng)驗(yàn)。第一次,我們畫了幾個(gè)月手動(dòng)layout了自己的logic cell, 包裝成cell導(dǎo)入自動(dòng)layout流程,結(jié)果到了deadline整體DRC也沒通過,最后只裝了幾個(gè)簡(jiǎn)單的測(cè)試電路,但好在關(guān)鍵數(shù)據(jù)都順利測(cè)得。另一次和一家知名日企合作,使用了他們實(shí)驗(yàn)性的FeRAM替代FPGA的SRAM,芯片回來,一個(gè)學(xué)生測(cè)試了半年也沒有任何反應(yīng)?,F(xiàn)在回想起那個(gè)學(xué)生的無數(shù)個(gè)日夜,在燈光下獨(dú)自一人嘗試和一塊石頭交談,依然感慨。學(xué)校里自己手動(dòng)layout,多是模擬的同學(xué)。學(xué)校和企業(yè)不同,學(xué)生來去太快,很難沉淀下layout這種要求多年經(jīng)驗(yàn)的手工藝。所以研究大規(guī)模數(shù)字電路的學(xué)術(shù)機(jī)構(gòu),還是要有自知之明,讓專業(yè)的人做專業(yè)的事。
然而此時(shí)卻發(fā)生了個(gè)意外,常年為日本學(xué)術(shù)界鞠躬盡瘁的老朋友富士通半導(dǎo)體,由于不景氣和松下半導(dǎo)體部門合并,我們一直使用的e-Shuttle制程不能再用了。這讓我們震驚又難過,富士通半導(dǎo)體一直通過VDEC,以很低的價(jià)格為學(xué)術(shù)界提供MPW流片服務(wù)。我們一度覺得那年的流片計(jì)劃要取消了。然而平時(shí)憨態(tài)可掬啥事不管的大boss罕見地展示了他的力量,火速聯(lián)系、談妥了后端設(shè)計(jì)公司,通過后端公司搞定了TSMC的合作合同。這個(gè)過程異常艱難,預(yù)算資金、跨國合作、各種合同條款保密協(xié)議、多方斡旋,說短也差不多用了兩個(gè)多月的時(shí)間。而TSMC的standard library到我們手,已經(jīng)是八月。
這時(shí)重要的時(shí)間點(diǎn)就定下來了,研究期間限制14年三月必須拿到芯片,后端公司推薦了14年1月的TSMC流片計(jì)劃,后端要求三個(gè)月設(shè)計(jì)時(shí)間,我們必須10月初交付前端設(shè)計(jì)文件,留給我們的只有僅僅兩個(gè)月了。
好在三個(gè)學(xué)弟基礎(chǔ)模塊的Verilog已寫好大半,兩人負(fù)責(zé)FPGA Array,一人負(fù)責(zé)Controller。只要我用TSMC的standard library重新跑一邊架構(gòu)探索,再估算出預(yù)定的die size下FPGA的大小,就可以一氣呵成完成代碼。這個(gè)過程非常順利,用我博士課題中開發(fā)的面向ASIC的FPGA IP CAD Flow,在十幾臺(tái)服務(wù)器中跑了一周Benchmark,在幾十種自制FPGA Architecture找到了性能最佳的架構(gòu)和尺寸。Flow的執(zhí)行和數(shù)據(jù)回收、分析全程自動(dòng)化,一切按設(shè)計(jì)運(yùn)行,完美,心里給自己點(diǎn)了個(gè)贊。然而,我并不知道下面等待我的九月和十月將是我人生中最黑暗的兩個(gè)月。
八月末,師弟們的FPGA整體組裝已經(jīng)初步完成,進(jìn)入測(cè)試期。九月初我還參加了FPL2013,領(lǐng)域頂級(jí)會(huì)議,學(xué)術(shù)精英,在波爾圖的酒莊品著紅酒吹著牛。然而回來后各種問題在測(cè)試期爆發(fā)了,一片混沌。
下層模塊的測(cè)試都還順利,但我們必須要在交付后端前,做整片cover所有功能的完整的仿真。這就需要我盡快完成CAD的最后一個(gè)功能,為這次的FPGA編寫bitstream生成器。FPGA部、I/O部,所有都是可編程的,20多萬比特,要根據(jù)LUT的邏輯和FPGA Routing的結(jié)果,自動(dòng)生成,一個(gè)都不可以差。并且,我們這款FPGA有自動(dòng)糾錯(cuò)功能,指令模式多達(dá)十幾種,針對(duì)每個(gè)命令都要有相應(yīng)的bitstream。這部分工作量正常少說也要兩三個(gè)月,但我們總共也沒那么多時(shí)間了。
這時(shí)候還開始增加需求了!因?yàn)轭A(yù)計(jì)到樣片很有可能因?yàn)楦鞣N原因無法工作,為了把風(fēng)險(xiǎn)降到最低,boss要求利用多余引腳插入信號(hào)后門。一要可以隨時(shí)查看內(nèi)部寄存器的狀態(tài),二要可以通過多個(gè)點(diǎn)注入FPGA的configuration bit,保證即使一部分出了問題,依然有辦法讓剩下的部分工作。于是師弟們開始無日無夜的加電路代碼,我無日無夜地搞這20多萬個(gè)configuration bit,仿真。
仿真是噩夢(mèng),一次快速優(yōu)化仿真要一個(gè)小時(shí),但只能觀測(cè)到提前指定的信號(hào)。一次完整的慢仿真要三個(gè)多小時(shí)。軟件開發(fā)出身的我,習(xí)慣了一邊debug一邊改程序,按下run馬上就可以定位問題所在。而我們的FPGA仿真一次三小時(shí),如果我沒算錯(cuò)一天不睡覺也只有八次機(jī)會(huì)而已。所以想想開發(fā)成本是和測(cè)試周期長(zhǎng)度成正比的,高成本的醫(yī)學(xué)生物研究一個(gè)周期幾周到幾個(gè)月,更高成本的農(nóng)業(yè)更是要幾個(gè)月到幾年。面對(duì)這種困難,我采取的策略是執(zhí)行前更認(rèn)真地審查代碼,盡量靠code review排除bug。出錯(cuò)了也不是急于翻代碼,而是根據(jù)現(xiàn)象在腦中思索產(chǎn)生bug的所有可能性。再就是同時(shí)跑多組測(cè)試節(jié)省時(shí)間。那時(shí)候時(shí)間比什么都寶貴,不分晝夜每三個(gè)小時(shí)看一次仿真結(jié)果,分析,改程序,再跑。時(shí)間管理和硬件設(shè)計(jì)一樣,并行、流水線、達(dá)芬奇睡眠法。
還有一個(gè)噩夢(mèng)是data sheet。因?yàn)橹懊τ陂_發(fā),大家并沒有準(zhǔn)備data sheet。然而這次是外包后端,除了Verilog代碼、約束,自然需要詳細(xì)的data sheet給人查閱。我們?cè)诰旁碌酌Φ貌豢砷_交的時(shí)候,還同時(shí)寫了大概有1000頁紙的各部分電路說明、功能說明、約束說明。
一個(gè)九月基本沒休息,好在最后大家拼命把該做的事都完成了。第一次仿真成功的時(shí)候,大家感動(dòng)得不輕。一個(gè)Verilog測(cè)試電路,通過ODIN II綜合、我們修改過的ABC mapping、TV-Pack打包、VPR布局,最后用我開發(fā)的EasyRouter布線并生成bitstream,下載到自己的FPGA中成功仿真出結(jié)果。我只想謝謝開源社區(qū),謝謝師弟們,你們的工作太了不起了。
十月,如期和后端公司派來的工程師見面了。對(duì)方相當(dāng)專業(yè)、談吐干練,在我們眼里就像從天而降前來營救的海豹突擊隊(duì)員。當(dāng)我們搬出1000多頁的說明書,他們也驚呆了說沒見過這仗勢(shì)。我猜他們心里應(yīng)該是萬馬奔騰的,你們給RTL和constrain就好了,誰要管這些。實(shí)際上專家們也有些輕敵了,他們并沒預(yù)想到layout FPGA的困難。
大家知道timing是數(shù)字設(shè)計(jì)的一切,每個(gè)時(shí)鐘的setup、hold time,關(guān)鍵path的propagation delay都要準(zhǔn)確約束。然而FPGA在configuration之前,邏輯是不確定的,里面大量存在的timing loop足以讓任何一個(gè)ASIC CAD工具報(bào)錯(cuò)甚至crash。加之我們還要求一些主要的routing channel和logic path盡量延遲一致。這都是其他類型芯片的Layout不存在的困難。通常我們自己仿真,會(huì)先加載benchmark的bitstream,自然就不會(huì)存在timing loop了。而做后端不能只為一個(gè)benchmark做約束,不能使用這一方式。最后我和對(duì)方的工程師用了大量精力,一起編寫了幾十個(gè)場(chǎng)景的約束,他們只要滿足這些約束就可以。如果存在我們沒考慮到的約束而導(dǎo)致流片失敗,對(duì)方是不用負(fù)責(zé)任的。其實(shí)后端外包公司通常都不需要擔(dān)心負(fù)什么責(zé)任,因?yàn)橐坏┦?大多學(xué)術(shù)機(jī)構(gòu)是沒能力去追查責(zé)任在誰的。
中間還有一個(gè)插曲很驚險(xiǎn)。后端公司起初告知我們可以使用的die size,忘了減掉I/O Pad的面積,而這些Pad幾乎占了五分之一的可用面積。當(dāng)他們發(fā)現(xiàn)這一問題,也有點(diǎn)慌張了,發(fā)郵件來問可不可以改設(shè)計(jì),讓FPGA Array小一點(diǎn)。我們也不可能有精力重做,很堅(jiān)決的否定了。后來對(duì)方還是展現(xiàn)了強(qiáng)悍的專業(yè)風(fēng)范,使用了CUP(circuit under pad),在模塊縫隙中手動(dòng)layout等絕技,把我們的FPGA塞了進(jìn)去。后端公司的工程師們給我印象非常深刻,不知道他們會(huì)不會(huì)吐槽后悔接了這個(gè)苦差,也不知道他們是不是熬了很多個(gè)日夜。專業(yè)人士就是這樣,接活,做完。看起來輕松,他們只是不會(huì)讓你看見他們的辛苦。這世界不存在舉手之勞這回事。
完全交付后端到14年三月收樣片,封裝,我們還設(shè)計(jì)了樣片和VLSI測(cè)試平臺(tái)中間的一塊adapter board。我抽空完成了博士論文和答辯。和幾乎所有答主提到的一樣,緊張感肯定有的。但我看的比較開,從技術(shù)角度,我已經(jīng)學(xué)到了很多。但最重要的,是我三月就能拿到學(xué)位,東窗事發(fā)可以隨時(shí)跑路。好在一切順利,我們的芯片最終正常工作。測(cè)試數(shù)據(jù)成功返回的瞬間,我是整個(gè)人癱軟在了椅子上,靈魂出竅,想起了NHK紀(jì)錄片《電子立國自述轉(zhuǎn)》中一位半導(dǎo)體前輩說的一段話:
“每次芯片tapeout的兩三個(gè)月,心里是非常不安的,睡不好。隨時(shí)都在想會(huì)不會(huì)有問題,哪里哪里對(duì)不對(duì)。芯片回來,第一次按RESET,心里的緊張到了極點(diǎn),RESET松開,就是區(qū)別天堂和地獄的一瞬間。邏輯分析儀數(shù)字混亂,心情瞬間落入地獄,沒人愿意說話。如果一切正常,人就像到了天堂,就像整個(gè)世界都在圍繞自己旋轉(zhuǎn),就像我就是世界之王?!?
相關(guān)標(biāo)簽搜索:牛人分享 ▏參與流片是一種怎樣的體驗(yàn)! 機(jī)械設(shè)計(jì)培訓(xùn) 機(jī)械設(shè)計(jì)課程 機(jī)械設(shè)計(jì)視頻 機(jī)械設(shè)計(jì)技術(shù)教程 機(jī)械設(shè)計(jì)資料下載 SolidWorks UG inventor軟件應(yīng)用 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn)