0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

揭秘FPGA設(shè)計(jì)難題:芯片出身也能影響性能表現(xiàn)

FPGA之家 ? 來源:云棲社區(qū) ? 2024-04-26 09:54 ? 次閱讀

作者:隱達(dá)

(一)昨夜西風(fēng)凋碧樹。獨(dú)上高樓,望盡天涯路

2000年的時(shí)候,做設(shè)計(jì)基本都是使用Xilinx公司的Virtex和Virtex-E系列芯片。那時(shí)候Altera技術(shù)實(shí)力還比較弱,基于Altera的芯片做設(shè)計(jì)是要被大家diss的。某天晚上大概十點(diǎn)多了吧,我正如癡如醉的沉浸在編碼的快感當(dāng)中。主管悄無聲息的站到了我身后,我從顯示器中看到了隱約的影子,轉(zhuǎn)頭一看果然是他老人家。

主管神色凝重,眉頭緊蹙。我在腦子里迅速回顧了一下自己最近的所作所為,確信沒干什么罪大惡極、自絕于人民的壞事兒,用顫抖的語氣小心翼翼的問:老大,您找我?老大的神色迅速地轉(zhuǎn)換,分明在說:蠢貨,你又不是什么萌妹子,要是沒事兒你以為我老人家愿意屈尊站到你這兒么?after一個(gè)藍(lán)衣女子般的風(fēng)情萬種的白眼之后,老大終于開腔了。

“我們學(xué)理科的都不信鬼神對(duì)吧?”大哥,你這是什么開場白?!我那會(huì)兒不過才工作兩年多,純潔的像一張黑不溜秋的白紙,根本識(shí)別不了您這是準(zhǔn)備給我刨什么坑好吧,為啥你要給我出這樣的難題?老大露出了一些不耐煩:“幾個(gè)月之前到現(xiàn)在,有一批單板邪門兒了,有的工作正常,有的就不斷的出亂碼。經(jīng)過大家夜以繼日沒白沒黑嘔心瀝血玩兒命的加班定位之后,大家一致認(rèn)為問題出在這塊單板上的FPGA上”。早說嘛,F(xiàn)PGA我熟啊?!袄洗螅瑔栴}既然都定位了,那就解決嘛”。老大露出了詫異的神情:我X,你這貨是怎么混進(jìn)我司的?回頭老子要找當(dāng)初面試你的人算賬!老大深吸了一口氣,帶著“老子再忍你十秒鐘的神情”繼續(xù)說:“這個(gè)FPGA一共9000多接近一萬行代碼,最關(guān)鍵的是,設(shè)計(jì)這個(gè)FPGA的同事三周前就離職了?,F(xiàn)在雖然確定了問題出在這個(gè)FPGA,但是究竟是什么問題還不知道。所以呢,大家商量了一下,決定暫時(shí)把你抽調(diào)出來,全力投入這個(gè)事情。一呢,要搞清楚到底是什么問題,二呢,把問題徹底解決掉”。

要不怎么說當(dāng)年的我就是純潔啊,要是放到現(xiàn)在,這肯定是一個(gè)絕佳的跟老大討價(jià)還價(jià)、多給自己爭取個(gè)仨瓜倆棗的好機(jī)會(huì)啊。彼時(shí)單純(其實(shí)就是弱智)的我卻覺得天大的展示自己身手的時(shí)刻終于到來了,于是欣然接受。老大神情輕松了一些,但還帶著少許疑惑:這貨不知道行不行,但愿不要把老子也坑了。然后溜溜達(dá)達(dá)的走了。

(二)衣帶漸寬終不悔,為伊消得人憔悴

我一夜無眠,小心臟一直在忽冬忽冬滴亂跳。第二天我一頭扎進(jìn)了封閉的實(shí)驗(yàn)室。實(shí)驗(yàn)室里堆了好多單板,好的一堆,壞的一堆,然后各種儀器和電腦。整整一周,我都在實(shí)驗(yàn)室里瞎折騰,除了一遍又一遍的證實(shí)了問題現(xiàn)象確實(shí)如老大所描述的,然后就是看那9000多行的HDL代碼。寫代碼的同事不知道是故意的還是習(xí)慣如此:注釋少的可憐、設(shè)計(jì)文檔和實(shí)際代碼差異極大(文檔在說水果里面桃子最好吃,代碼寫的是大飛機(jī)C919很威武)、變量的命名也毫無規(guī)律,后綴_addr的變量居然是數(shù)據(jù)總線,而后綴_data的變量才是地址總線。我心說:“哥啊,地球人都知道花花轎子人抬人。你我素昧平生、素不相識(shí)、萍水那個(gè)從未相逢,可為神馬你就知道我要被派來收拾你的爛攤子,這么多花樣來收拾我涅?”

一周毫無進(jìn)展,我很沮喪。渾渾噩噩的過了周末(其實(shí)也就是周日一天),周一繼續(xù)鉆進(jìn)實(shí)驗(yàn)室。開放辦公區(qū)里鶯歌燕語,其樂融融,就我一個(gè)人傻兮兮的在實(shí)驗(yàn)室里古佛青燈兼顧影自憐,相當(dāng)稱得上凄凄慘慘戚戚。中間老大時(shí)不時(shí)的過來關(guān)心我一下,其實(shí)就是監(jiān)工外加檢查進(jìn)度??墒菦]進(jìn)度可言:我根本不知道問題出在哪里,這么短的時(shí)間把小一萬行HDL代碼都看明白也不可能。如果我能的話,那我應(yīng)該去做老大的老大了(那會(huì)兒大家都崇拜技術(shù)牛人,普遍覺得誰技術(shù)牛誰就應(yīng)該做老大)。

一轉(zhuǎn)眼就到周五下午了,我在實(shí)驗(yàn)室里垂頭喪氣。雙手捂著臉,開始埋怨自己為什么接任務(wù)的時(shí)候才出現(xiàn)智商余額不足的fatal error。大顯身手是徹底的forget about it了,弄不好倒可能因此把自己給葬送了。繼而開始埋怨主管:我一直是順民,挺聽話也挺出活,你為啥要給我刨這么大的一個(gè)坑涅?百撕不得奇解啊。一頭霧水兼百無聊賴,我拿起一塊單板,盯著那片F(xiàn)PGA。嗯,這里寫著Malaysia,沒想到Xilinx在大馬還有工廠。換一塊單板,嗯,還是Malaysia。這不是廢話么,買一批至少也是幾千片,當(dāng)然都是Malaysia。正要仰天長嘆“天亡我也,非我不能也”,忽然瞥見另一塊單板的FPGA上印的似乎不是Malaysia,拿起一看,果然印的是Taiwan。終于找到一點(diǎn)有意思的事情做了,于是再拿一塊,嗯,Taiwan,再拿一塊,嗯大馬。拿著拿著,忽然發(fā)現(xiàn)一個(gè)規(guī)律:從那堆壞板子里拿的都是印著Malaysia;從那堆好板子里拿的都是印著Taiwan。

(三)眾里尋他千百度,驀然回首,那人卻在,燈火闌珊處

工程師都知道,尋找好板和壞板之間的“差異”是定位問題的利器之一啊。因此當(dāng)時(shí)雖然沒有欣喜若狂,但是也隱隱看到了一絲曙光。

我沖出實(shí)驗(yàn)室,一溜小跑去了焊板實(shí)驗(yàn)室。找到了焊板的同事,讓他現(xiàn)場給我焊兩塊單板,一塊必須用產(chǎn)自大馬的FPGA,一塊必須用產(chǎn)自臺(tái)灣的FPGA。那個(gè)老兄很奇怪的看了我一眼,然后又一眼。后來我才想明白估計(jì)我是第一個(gè)在乎芯片產(chǎn)地的怪咖。

我就站在他旁邊,看著他工作,覺得時(shí)間過得奇慢無比。拿到了焊好的兩塊板子,又以百米沖刺的速度殺回實(shí)驗(yàn)室,隱隱約約聽到有同事在抱怨:發(fā)哪門子神經(jīng),刮這么大的風(fēng)。我以迅雷不及掩耳盜鈴之勢,先把臺(tái)灣板子安裝好,上電啟動(dòng)、加載、運(yùn)行,果然是好的;拆掉臺(tái)灣,換上大馬板子,上電啟動(dòng)、加載、運(yùn)行,果然出誤碼了。問題確診了!為了保險(xiǎn)起見,我從壞板和好板堆里各取了兩塊單板進(jìn)行了驗(yàn)證,現(xiàn)象是一致的。

此時(shí)距離下班也就十幾分鐘了,我趕緊去了老大的工位,強(qiáng)壓著雞凍滴小心情,向老大匯報(bào):“老大,告訴生產(chǎn)那邊,發(fā)貨只能用產(chǎn)自臺(tái)灣的芯片,馬來西亞的堅(jiān)決不能用。我懷疑產(chǎn)自馬來西亞的芯片的容差小,產(chǎn)自臺(tái)灣的芯片的容差比較大。而設(shè)計(jì)本身肯定存在時(shí)序打擦邊球的情況,導(dǎo)致使用產(chǎn)自馬來西亞芯片的單板會(huì)出誤碼,而使用產(chǎn)自臺(tái)灣的芯片則沒有問題。到底是哪里的時(shí)序存在擦邊球的隱患,我還需要進(jìn)一步熟悉代碼,尋找之而修改之而長治久安也”。老大難得的露出了笑容:“嗯,不錯(cuò)不錯(cuò)!這兩周辛苦了,回去好好休息,下周全力解決問題。啊,對(duì)了,你該刮胡子了?!?/p>

周末跟老婆(那時(shí)候還是女朋友)去搓了一頓大餐,逛街,看電影,累得半死,但是心情那是相當(dāng)?shù)挠淇臁?/p>

我從實(shí)驗(yàn)室回到了工位,在感受人間煙火氣的同時(shí),全力看代碼。認(rèn)真的看了一整天之后,我發(fā)現(xiàn)前同事對(duì)于“同步”、“組合邏輯嵌套層次不能過多”等設(shè)計(jì)原則完全不care,隱患到處都是,要想徹底的解決這些隱患,只有一個(gè)辦法:推倒重來。我去找老大說明了想法,老大說:“要不要這么夸張?勞資派你去解決問題,你解決問題就是了,搞這么大工程出來,有必要么?”我說:“老大,我以一個(gè)工程師滴半生清譽(yù)擔(dān)保:如果不推倒重來,問題根本不能徹底解決。”老大無奈的揮了揮手,說話的同時(shí)目露兇光兼咬牙切齒:“是否推倒你來定。但素,市場那邊給出的預(yù)測是最多三個(gè)月內(nèi),這塊單板就會(huì)迎來發(fā)貨高峰,到那時(shí)無論如何也要保證FPGA不出任何問題。你有信心滴干活?”“餓夫考斯啊老大,沒有金剛鉆,不攬瓷器活啊”,我心說:“你要是答應(yīng)給我加五百塊工資,沒準(zhǔn)兒我敢承諾一半的時(shí)間就給你搞出來”。

結(jié)果不到三個(gè)月,我的全套重寫的代碼就完成了,編譯、加載、測試:不論是產(chǎn)自臺(tái)灣的芯片還是馬來西亞的芯片,完全沒問題。老大不放心,特地多找了幾塊焊著馬來西亞芯片的板子一遍又一遍的測試,結(jié)果仍然是no problem at all。

老大笑靨如花(港版那個(gè)),眼睛瞇成了一條縫兒:“小樣兒,行??!”我只顧嘿嘿傻笑,結(jié)果忘了趁熱打鐵跟老大提加薪。曾經(jīng)有一個(gè)機(jī)會(huì)擺在我面前,我沒有珍惜。如果有重來一次的機(jī)會(huì),我特么會(huì)加一個(gè)十萬光年的期限。

過了沒多久,Xilinx公司也發(fā)來了報(bào)告:由于馬來工廠的某個(gè)車間頂部一個(gè)窗戶沒關(guān)嚴(yán),導(dǎo)致車間純凈度不夠,所以那段時(shí)間生產(chǎn)的芯片盡管各項(xiàng)指標(biāo)都在合格范圍內(nèi),但是都在邊緣,從而容差能力都比較低。公司已經(jīng)發(fā)現(xiàn)并做了相應(yīng)處理,之后生產(chǎn)的芯片從一致性方面跟臺(tái)灣產(chǎn)的芯片沒有區(qū)別了。

Well,這就是我從業(yè)生涯中碰到的“芯片也要看出身”的“靈異”事件。給我的印象是如此之深,18年后我仍然記得清清楚楚。問題解決是在2000年的9月份,第二年,我慘遭表揚(yáng),獲得了某公司的最高榮譽(yù):XXXX獎(jiǎng)。

后記:

1.真實(shí)問題定位的過程很痛苦,也比文中描述的要復(fù)雜,因?yàn)槟桥鷨伟迨褂玫腇PGA芯片還有另外一個(gè)產(chǎn)地:韓國。在定位問題的過程中,臺(tái)灣和韓國的芯片加載原同事的設(shè)計(jì)都沒有問題,馬來產(chǎn)的就不行。于是比對(duì)、比對(duì)、再比對(duì),最終確定了問題出在馬來產(chǎn)的芯片上。

2. 我重寫后的設(shè)計(jì)完全不區(qū)分芯片的產(chǎn)地。采用原同事設(shè)計(jì)、已經(jīng)發(fā)貨的那批單板,使用產(chǎn)自臺(tái)灣、韓國的芯片而暫時(shí)沒出問題的,總量大概幾千塊吧,這些單板在條件發(fā)生變化時(shí)(比如溫度變化、電壓變化),出誤碼是必然的。好在那時(shí)候運(yùn)營商對(duì)國產(chǎn)廠家都比較寬容,用服的同事找了各種機(jī)會(huì),神不知鬼不覺的對(duì)這些單板上的FPGA重新加載了新版本,徹底消除了隱患。

3. 9000多行代碼,我用了大概70個(gè)工作日進(jìn)行了重寫,計(jì)算開發(fā)效率,大約是130行/人天。實(shí)際上,我做過個(gè)人職業(yè)生涯的不完全統(tǒng)計(jì):使用HDL開發(fā)FPGA,從全流程的角度來計(jì)算(從需求分析到最終發(fā)布),效率不會(huì)超過20行/人天,跟軟件開發(fā)效率大致類似。當(dāng)然,隨著新的設(shè)計(jì)語言以及工具等方面的進(jìn)步,開發(fā)效率會(huì)逐步提升是毫無疑問的。

4. 文檔真的很重要、很重要、很重要。很多人會(huì)說:整個(gè)設(shè)計(jì)(模塊)我閉著眼睛都能知道哪行代碼是干嘛的,文檔意義不大。但素,人的記憶是會(huì)衰退的。如果設(shè)計(jì)天衣無縫、沒有任何問題,在整個(gè)生命周期里沒有任何升級(jí)或者功能變動(dòng),那么文檔也許沒那么重要。但素,大家想一想,對(duì)于FPGA來說,上述條件全部滿足的概率是不是和行星撞地球差不多?我?guī)缀踔貙懥苏麄€(gè)設(shè)計(jì)文檔,基本能保證文檔描述的是西施,而設(shè)計(jì)至少是鳳姐。

------

本文作者:隱達(dá),阿里云資深專家,花名的意思就是做人隱,做事達(dá)。業(yè)余時(shí)間喜歡看美劇和讀書,尤其是歷史書;還喜歡喝點(diǎn)小酒侃大山,喝酒只喝啤酒和威士忌;酒量比較差,但是酒品還過得去。我在某通信公司工作了18年,其中十年的大規(guī)模FPGA/ASIC開發(fā)和系統(tǒng)設(shè)計(jì),剛剛加入阿里云,負(fù)責(zé)FPGA/ASIC異構(gòu)計(jì)算。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423663
  • Virtex
    +關(guān)注

    關(guān)注

    1

    文章

    36

    瀏覽量

    20732

原文標(biāo)題:阿里云專家講FPGA設(shè)計(jì)遇到的奇葩問題:“芯片也要看出身”

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NTC溫度傳感器解決儲(chǔ)領(lǐng)域難題

    NTC溫度傳感器解決儲(chǔ)領(lǐng)域難題。隨著社會(huì)逐步發(fā)展,受雙碳戰(zhàn)略及區(qū)域能源結(jié)構(gòu)影響,儲(chǔ)領(lǐng)域已經(jīng)成為全球持續(xù)討論的話題。儲(chǔ)領(lǐng)域分別包括風(fēng)力儲(chǔ)
    的頭像 發(fā)表于 12-02 10:09 ?161次閱讀
    NTC溫度傳感器解決儲(chǔ)<b class='flag-5'>能</b>領(lǐng)域<b class='flag-5'>難題</b>

    FPGA做深度學(xué)習(xí)走多遠(yuǎn)?

    中的性能和效率。同時(shí),可能會(huì)出現(xiàn)一些新的基于 FPGA 的深度學(xué)習(xí)算法創(chuàng)新,拓展其應(yīng)用領(lǐng)域。 ? 應(yīng)用領(lǐng)域的拓展:除了在圖像識(shí)別、語音處理、自動(dòng)駕駛等領(lǐng)域的應(yīng)用,FPGA 在深度學(xué)習(xí)
    發(fā)表于 09-27 20:53

    谷景科普一體成型電感性能不良有哪些表現(xiàn)

    谷景揭秘一體成型電感性能不良有哪些表現(xiàn)編輯:谷景電子一體成型電感作為電子電路中非常重要的一種電子元器件,它的性能的好壞將會(huì)直接影響到電路運(yùn)行的穩(wěn)定性,以及設(shè)備的
    發(fā)表于 09-16 23:06 ?0次下載

    克服設(shè)計(jì)難題-實(shí)現(xiàn)高性能接口

    電子發(fā)燒友網(wǎng)站提供《克服設(shè)計(jì)難題-實(shí)現(xiàn)高性能接口.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:41 ?0次下載
    克服設(shè)計(jì)<b class='flag-5'>難題</b>-實(shí)現(xiàn)高<b class='flag-5'>性能</b>接口

    揭秘中國汽車芯片市場:主要企業(yè)有哪些?

    揭秘中國汽車芯片市場:主要企業(yè)有哪些?
    的頭像 發(fā)表于 07-19 10:12 ?577次閱讀
    <b class='flag-5'>揭秘</b>中國汽車<b class='flag-5'>芯片</b>市場:主要企業(yè)有哪些?

    FPGA芯片你了解多少?

    和專用 EDA 軟件的研發(fā)、設(shè)計(jì)。2019年,安路科技FPGA芯片在中國市場排名第四,在國產(chǎn)品牌中排名第一,2020年的產(chǎn)品出貨量突破 2000萬顆,FPGA芯片產(chǎn)品已形成以SALPH
    發(fā)表于 04-17 11:13

    常見的fpga芯片有哪些

    FPGA(現(xiàn)場可編程門陣列)芯片是一種可編程邏輯器件,其內(nèi)部包含了大量的可編程邏輯單元和連接關(guān)系,可以通過編程來實(shí)現(xiàn)不同的邏輯功能。目前市面上有許多常見的FPGA芯片,這些
    的頭像 發(fā)表于 03-15 14:45 ?1573次閱讀

    fpga芯片有哪些

    FPGA芯片的種類非常豐富,以下是一些主要的FPGA芯片及其特點(diǎn)。
    的頭像 發(fā)表于 03-14 17:35 ?1088次閱讀

    fpga芯片和普通芯片的區(qū)別

    FPGA芯片和普通芯片在多個(gè)方面存在顯著的區(qū)別。
    的頭像 發(fā)表于 03-14 17:27 ?1691次閱讀

    fpga芯片是什么芯片 fpga芯片的作用、功能及特點(diǎn)是什么

    )、CPLD(復(fù)雜可編程邏輯器件)等傳統(tǒng)邏輯電路和門陣列的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。FPGA芯片具有可編程性、靈活性和可定制性等特點(diǎn),被廣泛應(yīng)用于各種數(shù)字電子系統(tǒng)中,為其提供了更高的性能和更多的功能。
    的頭像 發(fā)表于 03-14 17:25 ?3771次閱讀

    fpga芯片命名規(guī)則 fpga芯片的管腳如何分配

    開始,用于標(biāo)識(shí)該芯片是由哪家公司制造的。 系列代號(hào):系列代號(hào)代表FPGA芯片所屬的系列或產(chǎn)品類型。不同的系列可能具有不同的功能、性能或應(yīng)用領(lǐng)域。例如,某些制造商可能有針對(duì)特定應(yīng)用或
    的頭像 發(fā)表于 03-14 16:54 ?1779次閱讀

    fpga芯片的主要特點(diǎn)包括 fpga芯片上市公司

    FPGA芯片的主要特點(diǎn)包括以下幾個(gè)方面: 高性能和實(shí)時(shí)性:FPGA芯片由數(shù)百萬個(gè)邏輯單元組成,因此具有并行處理能力,其運(yùn)行速度遠(yuǎn)超單片機(jī)和D
    的頭像 發(fā)表于 03-14 16:46 ?1150次閱讀

    fpga芯片有哪些品牌

    FPGA芯片市場上有多個(gè)知名品牌,它們?cè)诟髯缘念I(lǐng)域里都有出色的表現(xiàn)。以下是一些主要的FPGA芯片品牌。
    的頭像 發(fā)表于 03-14 16:19 ?2454次閱讀

    國產(chǎn)fpga芯片哪個(gè)好

    國產(chǎn)FPGA芯片中,有幾家知名的廠商提供的產(chǎn)品在市場上表現(xiàn)較好,包括復(fù)旦微電、紫光國微、安路科技等。
    的頭像 發(fā)表于 03-14 16:17 ?2698次閱讀

    FPGA與AISC的差異

    較低的單位成本。 性能和功耗 :由于ASIC是針對(duì)特定應(yīng)用定制的,因此其性能和功耗通常優(yōu)于FPGA。然而,隨著技術(shù)的進(jìn)步,一些高端FPGA
    發(fā)表于 02-22 09:54