在我的職業(yè)生涯中,我曾經(jīng)為一些很有趣的項(xiàng)目做過(guò)FPGA設(shè)計(jì),也曾挽救過(guò)許多誤入歧途的FPGA設(shè)計(jì)。我在處理這些問(wèn)題設(shè)計(jì)時(shí)發(fā)現(xiàn),雖然目標(biāo)應(yīng)用和開(kāi)發(fā)團(tuán)隊(duì)的成員不同,但這些設(shè)計(jì)顯然有一些通病,使設(shè)計(jì)從工程師坐下來(lái)寫(xiě)第一行HDL程序代碼時(shí),就注定了項(xiàng)目失敗的命運(yùn)。
有鑒于此,我想有必要介紹一下我在挽救這些項(xiàng)目時(shí)發(fā)現(xiàn)的5個(gè)共同問(wèn)題。這些問(wèn)題是:
問(wèn)題一:第一個(gè)問(wèn)題是在項(xiàng)目開(kāi)始之時(shí)沒(méi)有明確需求基線。這個(gè)問(wèn)題不只與基于FPGA的開(kāi)發(fā)有關(guān),它與工程是普遍相關(guān)的。人們經(jīng)常會(huì)在需求仍未成熟、還需不斷修改之時(shí)就急忙進(jìn)行項(xiàng)目。但是如果我們沒(méi)有完全理解需求就匆匆開(kāi)始開(kāi)發(fā),就可能出現(xiàn)初始步驟錯(cuò)誤的情況,接下來(lái)的糾正則會(huì)帶來(lái)延遲和額外的成本。
太早開(kāi)始項(xiàng)目會(huì)帶來(lái)開(kāi)發(fā)風(fēng)險(xiǎn),而這個(gè)風(fēng)險(xiǎn)需要降低。幸運(yùn)的是,需求的深度和細(xì)節(jié)可以根據(jù)具體的應(yīng)用進(jìn)行修改。我期望為SIL4系統(tǒng)而不是商用系統(tǒng)提出許多更詳細(xì)的需求。總之,如果一開(kāi)始對(duì)需求沒(méi)有達(dá)成一致意見(jiàn),或沒(méi)有形成正確的需求基線,就會(huì)出現(xiàn)范圍蔓延問(wèn)題。雖然一開(kāi)始設(shè)計(jì)的架構(gòu)非常合理,符合需求,但隨著需求基線的成熟,開(kāi)發(fā)人員會(huì)嘗試加入新的功能,從而使架構(gòu)越來(lái)越復(fù)雜。這樣用不了多久就會(huì)發(fā)生問(wèn)題。
問(wèn)題二:在理解需求細(xì)節(jié)之后,每個(gè)開(kāi)發(fā)人員還應(yīng)了解開(kāi)發(fā)FPGA的計(jì)劃,因此需要制定一個(gè)計(jì)劃,定義從項(xiàng)目啟動(dòng)到交貨要遵循的程序,確定主要開(kāi)發(fā)步驟和工程審查點(diǎn)。
除了制訂計(jì)劃外,我們還需要以文文件的形式記錄架構(gòu)和設(shè)計(jì),確定每個(gè)主要的功能,看哪些功能是需要新開(kāi)發(fā)的,哪些可以利用第三方IP或再利用現(xiàn)有IP(以后會(huì)越來(lái)越多)。計(jì)劃、架構(gòu)和設(shè)計(jì)描述文文件可以說(shuō)明工程技術(shù)團(tuán)隊(duì)理清手頭的任務(wù)。我們還可以按照具體需求檢查所有的功能,確保提議的方案能夠滿足所有高層需求。
問(wèn)題三:設(shè)計(jì)模塊和整個(gè)FPGA需要花費(fèi)時(shí)間;但耗時(shí)更長(zhǎng)的任務(wù)是設(shè)計(jì)驗(yàn)證,以確保設(shè)計(jì)滿足需求。這種驗(yàn)證不僅需要包含邏輯功能,還需要在組件所有可能的工作條件下進(jìn)行。反過(guò)來(lái)說(shuō),這意味著有必要針對(duì)設(shè)計(jì)開(kāi)發(fā)一個(gè)清晰的驗(yàn)證策略;這不再只是寫(xiě)寫(xiě)程序代碼、執(zhí)行一些仿真程序,然后將設(shè)計(jì)扔給硬件這么簡(jiǎn)單了。
問(wèn)題四:很多時(shí)候我們會(huì)因?yàn)檫^(guò)于投入某件事情而難以發(fā)現(xiàn)其中的問(wèn)題,這正是引入工程設(shè)計(jì)審查的目的。透過(guò)審查,我們可以確保遵循良好的工程操作方法,并符合內(nèi)部的開(kāi)發(fā)標(biāo)準(zhǔn)。另外,它們還能幫助獨(dú)立工程師檢查設(shè)計(jì)的架構(gòu)和實(shí)現(xiàn),以確保提供所需的功能。如果在開(kāi)發(fā)過(guò)程中不經(jīng)過(guò)審查設(shè)計(jì),可能就無(wú)法實(shí)現(xiàn)高質(zhì)量的設(shè)計(jì),并且可能增加下游的整合問(wèn)題。
問(wèn)題五:到這里你可能注意到,我提出的大多數(shù)觀點(diǎn)和過(guò)程是與更廣泛的工程而不是與設(shè)計(jì)編碼本身有關(guān)。開(kāi)發(fā)程序代碼固然重要,但是確保我們利用第三方IP和再利用內(nèi)部IP也同樣重要。
理想情況下,我們應(yīng)該盡可能再利用鏈接庫(kù)中的許多現(xiàn)有IP塊,當(dāng)不可能利用時(shí),當(dāng)然需要開(kāi)發(fā)新的模塊。在創(chuàng)建新模塊時(shí)必須時(shí)刻牢記,這些模塊在未來(lái)的項(xiàng)目中應(yīng)能再使用。我們應(yīng)該考慮使用高層次綜合(HLS)工具來(lái)說(shuō)明創(chuàng)建這些新模塊。因?yàn)樵试S我們工作在較高的抽象層,這些工具可以幫助我們更容易地拓展解決方案空間、縮短開(kāi)發(fā)時(shí)間,并降低風(fēng)險(xiǎn)和成本。
上述問(wèn)題是我在挽救FPGA設(shè)計(jì)時(shí)注意到的,您對(duì)誤入歧途的項(xiàng)目有何看法?
-
FPGA
+關(guān)注
關(guān)注
1646文章
22054瀏覽量
618812 -
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
27376
發(fā)布評(píng)論請(qǐng)先 登錄
使用信號(hào)分析儀器進(jìn)行功率測(cè)量過(guò)程的五大注意事項(xiàng)總結(jié)
FPGA學(xué)習(xí)及設(shè)計(jì)中需要注意事項(xiàng)有哪些?
FPGA仿真程序的設(shè)計(jì)方法,有什么注意事項(xiàng)?
技術(shù)人員在FPGA設(shè)計(jì)時(shí)需注意什么事項(xiàng)?
FPGA在邏輯設(shè)計(jì)中有哪些注意事項(xiàng)?
膽機(jī)使用的注意事項(xiàng)
FPGA設(shè)計(jì)的注意事項(xiàng)
FPGA學(xué)習(xí)及設(shè)計(jì)中的注意事項(xiàng)
選擇云數(shù)據(jù)存儲(chǔ)服務(wù)的五大注意事項(xiàng)包括了:要求,位置,經(jīng)驗(yàn),控制,監(jiān)管
FPGA管腳調(diào)整的注意事項(xiàng)
FPGA的有源電容器放電電路注意事項(xiàng)

先進(jìn)FPGA的電源設(shè)計(jì)注意事項(xiàng)(電源設(shè)計(jì)器121)

評(píng)論