<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 現(xiàn)場可編程門陣列(FPGA)設(shè)計(jì)

          現(xiàn)場可編程門陣列(FPGA)設(shè)計(jì)

          作者: 時(shí)間:2011-05-27 來源:網(wǎng)絡(luò) 收藏

          可讀性好的設(shè)計(jì)在調(diào)試、測試和維護(hù)上將節(jié)省大量的時(shí)間,已經(jīng)經(jīng)過驗(yàn)證的電路很容易重用,節(jié)省開發(fā)時(shí)間。

          完備的開發(fā)文檔

          為了保證設(shè)計(jì)的可重復(fù)性,設(shè)計(jì)文檔除了詳盡的系統(tǒng)設(shè)計(jì)說明之外,還必須包括一些其他的必要信息,比如軟件開發(fā)系統(tǒng)的版本號、軟件的各個(gè)選項(xiàng)及參數(shù)設(shè)置。另外,各種操作和修改的過程都應(yīng)該以文檔的方式記錄下來。如果不這樣做,最終的實(shí)現(xiàn)就會(huì)因人而異、因開發(fā)系統(tǒng)而異,整個(gè)系統(tǒng)的性能也變得不穩(wěn)定,甚至無法評估。

          設(shè)計(jì)的基本原則

          在EDACN的技術(shù)論壇上,一些經(jīng)驗(yàn)豐富的設(shè)計(jì)人員總結(jié)了FPGA設(shè)計(jì)中幾條非常重要的基本原則,現(xiàn)列舉如下,供大家參考借鑒。

          硬件資源與處理能力的折衷

          在設(shè)計(jì)中,可以通過并行處理來提高處理能力,而并行的硬件將消耗更多的FPGA內(nèi)部資源;也可以通過模塊復(fù)用來降低硬件資源的消耗,帶來的結(jié)果就是系統(tǒng)運(yùn)行速度的降低。在具體設(shè)計(jì)中,應(yīng)該根據(jù)系統(tǒng)性能指標(biāo)的要求,在資源消耗和處理能力之間取得合理的折衷,在保證系統(tǒng)功能和性能的同時(shí)降低資源消耗,從而降低功耗和成本。

          硬件思想

          應(yīng)該明確FPGA邏輯設(shè)計(jì)所采用的硬件描述語言與軟件語言(如C,C++等)是有本質(zhì)區(qū)別的。在使用硬件描述語言進(jìn)行FPGA設(shè)計(jì)時(shí),不應(yīng)該片面追求代碼的整潔,簡短。而正確的編碼方法是:首先要對所需實(shí)現(xiàn)的硬件電路的結(jié)構(gòu)與連接有十分清晰的理解和設(shè)想,然后再用適當(dāng)?shù)腍DL語句表達(dá)出來即可。

          系統(tǒng)原則

          在FPGA設(shè)計(jì)中,應(yīng)該對設(shè)計(jì)的全局在宏觀上進(jìn)行合理的安排,比如時(shí)鐘域、模塊復(fù)用、約束、面積、速度等問題。這些系統(tǒng)上的考慮不僅關(guān)系到是否能夠最大程度地發(fā)揮項(xiàng)目成員的協(xié)同設(shè)計(jì)能力,而且直接決定著設(shè)計(jì)的綜合、實(shí)現(xiàn)效果和相關(guān)的操作時(shí)間。

          模塊化設(shè)計(jì)是系統(tǒng)原則的一個(gè)很好的體現(xiàn),它不僅僅是一種設(shè)計(jì)工具,它更是一種設(shè)計(jì)思路、設(shè)計(jì)方法,它是自頂向下、模塊劃分、分工協(xié)作設(shè)計(jì)思路的集中體現(xiàn),是當(dāng)代大型復(fù)雜系統(tǒng)的推薦設(shè)計(jì)方法,目前很多的EDA廠商都提高了模塊化設(shè)計(jì)工具。

          同步設(shè)計(jì)原則

          目前的商用FPGA都是面向同步電路設(shè)計(jì)而優(yōu)化的,其上實(shí)現(xiàn)異步電路并不能充分體現(xiàn)出異步電路應(yīng)有的優(yōu)勢。而同步時(shí)序電路可以很好地避免毛刺,因此,提倡在設(shè)計(jì)中全部使用同步邏輯電路。

          FPGA設(shè)計(jì)新發(fā)展

          隨著FPGA的門數(shù)、速度、結(jié)構(gòu)復(fù)雜度、各種IP核供應(yīng)等方面的不斷進(jìn)步、數(shù)字系統(tǒng)設(shè)計(jì)規(guī)模超越幾百萬門,更多的設(shè)計(jì)者將混合使用系統(tǒng)級和平臺(tái)級的FPGA器件及其內(nèi)部嵌入的處理器、存儲(chǔ)器或數(shù)字信號處理器。FPGA設(shè)計(jì)的要求也必須作出相應(yīng)的變化,從而使設(shè)計(jì)者能夠使用FPGA器件實(shí)現(xiàn)更復(fù)雜、更高速的系統(tǒng)。

          在通常的FPGA設(shè)計(jì)中,首先是整個(gè)系統(tǒng)進(jìn)行架構(gòu),然后再把硬件部分設(shè)計(jì)交給硬件工程師進(jìn)行寄存器轉(zhuǎn)移級(RTL)設(shè)計(jì),軟件部分設(shè)計(jì)交給軟件工程師采用C++語言等進(jìn)行編程。但隨著設(shè)計(jì)規(guī)模的擴(kuò)大,芯片復(fù)雜度及性能需求的提高,使用傳統(tǒng)方法將面臨很多困難。因此,FPGA模塊化設(shè)計(jì)和系統(tǒng)級設(shè)計(jì)概念正在不斷得到發(fā)展和改進(jìn)。

          分層次的模塊化設(shè)計(jì)方法

          分層次的、基于模塊的設(shè)計(jì)方法將系統(tǒng)分為多個(gè)層次,采用模塊作為基本設(shè)計(jì)單元,實(shí)現(xiàn)系統(tǒng)的開發(fā)和設(shè)計(jì)。在這種設(shè)計(jì)流程中,設(shè)計(jì)者面對的是各種不同層次的功能模塊,這樣就為復(fù)雜的幾百萬門級系統(tǒng)的設(shè)計(jì)和處理提供了更高的抽象級別以及更靈活的實(shí)現(xiàn)方式。

          分層次的模塊化設(shè)計(jì)方法具有很多優(yōu)點(diǎn)。滿足了縮短市場響應(yīng)時(shí)間,同時(shí)降低成本的需求。首先,基于模塊的設(shè)計(jì)方法在設(shè)計(jì)實(shí)現(xiàn)中引入了最大程度的并行性,使頂層設(shè)計(jì)和單個(gè)模塊設(shè)計(jì)能同時(shí)進(jìn)行;其次,這種方法使得設(shè)計(jì)者更容易進(jìn)行設(shè)計(jì)復(fù)用,包括設(shè)計(jì)模塊和IP核的復(fù)用。

          電子系統(tǒng)級(ESL)設(shè)計(jì)與驗(yàn)證方法學(xué)

          ESL設(shè)計(jì)是能夠讓電子系統(tǒng)設(shè)計(jì)工程師以緊密耦合方式開發(fā)、優(yōu)化和驗(yàn)證復(fù)雜系統(tǒng)架構(gòu)和嵌入式軟件的一套方法學(xué),它還提供寄存器傳輸級實(shí)現(xiàn)的驗(yàn)證基礎(chǔ)。

          ESL的目標(biāo)是系統(tǒng)級模型的協(xié)同軟硬件設(shè)計(jì)。在過去幾年中,ESL設(shè)計(jì)被認(rèn)為是一個(gè)很難達(dá)到的目標(biāo)。然而目前,業(yè)界在ESL設(shè)計(jì)上已經(jīng)取得了一定的進(jìn)展。隨著SystemC已提交給IEEE P1666工作組,SystemC如今已被接受并成為廣泛使用的系統(tǒng)級建模標(biāo)準(zhǔn)。目前已有許多世界領(lǐng)先的系統(tǒng)和半導(dǎo)體公司采用ESL設(shè)計(jì),為產(chǎn)品提供必需的先進(jìn)功能和高性能。電路規(guī)模越大、復(fù)雜度越高,ESL設(shè)計(jì)方法和工具所能顯示的優(yōu)勢就越高


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();