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