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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > EDA技術(shù)與FPGA技術(shù)設(shè)計(jì)應(yīng)用

          EDA技術(shù)與FPGA技術(shù)設(shè)計(jì)應(yīng)用

          作者: 時(shí)間:2012-05-06 來(lái)源:網(wǎng)絡(luò) 收藏

           設(shè)計(jì)輸入主要采用HDL(硬件描述語(yǔ)言)、ECS(Engineering SchematicCapture,原理圖編輯器)和FSM(Finite State Machine,有限狀態(tài)機(jī));

          本文引用地址:http://www.ex-cimer.com/article/190407.htm

            設(shè)計(jì)綜合就是依據(jù)邏輯設(shè)計(jì)描述和約束條件,利用開(kāi)發(fā)工具進(jìn)行優(yōu)化處理,將HDL文件轉(zhuǎn)變?yōu)橛布娐穼?shí)現(xiàn)方案,其實(shí)質(zhì)就是優(yōu)化設(shè)計(jì)目標(biāo)的過(guò)程;

            設(shè)計(jì)約束主要包括設(shè)計(jì)規(guī)則約束、時(shí)間約束、面積約束三種,通常時(shí)間約束的優(yōu)先級(jí)高于面積約束;

            設(shè)計(jì)實(shí)現(xiàn)對(duì)于分為編譯規(guī)劃、布局布線(P AR,Place AndRoute)、程序比特流文件產(chǎn)生;對(duì)于CPLD則是編譯、配置、比特流文件產(chǎn)生;

            設(shè)計(jì)仿真分為功能仿真和時(shí)序時(shí)延仿真。功能仿真在設(shè)計(jì)輸入之后、綜合之前進(jìn)行,只進(jìn)行功能驗(yàn)證,又稱為前仿真。時(shí)序時(shí)延仿真在綜合和布局布線之后進(jìn)行,能夠得到目標(biāo)器件的詳細(xì)時(shí)序時(shí)延信息,又稱為后仿真;

            器件編程是指在功能仿真與時(shí)序時(shí)延仿真正確的前提下,將綜合后形成的位流編程下載到具體的/CPLD芯片中,又稱芯片配置。/CPLD編程下載通??墒褂肑TAG編程器、PROM文件格式器和硬件調(diào)試器三種方式,其中JTAG(JointTest Action Group,聯(lián)合測(cè)試行動(dòng)組)是工業(yè)標(biāo)準(zhǔn)的IEEE1149.1邊界掃描測(cè)試的訪問(wèn)接口,用作編程功能可省去專用的編程接口,減少系統(tǒng)引出線,有利于各可編程邏輯器件編程接口的統(tǒng)一,因此應(yīng)用廣泛。

            4.FPGA設(shè)計(jì)優(yōu)化及方案改進(jìn)

            在FPGA設(shè)計(jì)中,必須首先明確HDL源代碼編寫非常重要;不同綜合工具包含的綜合子集不同致使有些HDL語(yǔ)句在某些綜合工具中不能綜合;同一邏輯功能可用不同HDL語(yǔ)句進(jìn)行描述,但占用資源卻可能差別很大。同時(shí)應(yīng)當(dāng)深刻理解并發(fā)性是硬件描述語(yǔ)言與普通高級(jí)語(yǔ)言的根本區(qū)別,因而設(shè)計(jì)硬件電路不能受傳統(tǒng)順序執(zhí)行思維的束縛。

            此外,我們應(yīng)當(dāng)清楚速度優(yōu)化與面積優(yōu)化在FPGA設(shè)計(jì)中占有重要地位。對(duì)于大多數(shù)數(shù)字系統(tǒng)設(shè)計(jì)而言,速度常常是第一要求,但FPGA結(jié)構(gòu)特性、綜合工具性能、系統(tǒng)電路構(gòu)成、PCB制版情況及HDL代碼表述都會(huì)對(duì)工作速度產(chǎn)生重要影響。我們通過(guò)在電路結(jié)構(gòu)設(shè)計(jì)中采用設(shè)計(jì)、寄存器配平、關(guān)鍵路徑法可以進(jìn)行速度優(yōu)化。

            (1)流水線設(shè)計(jì)

            流水線(Pipelining)技術(shù)在速度優(yōu)化中相當(dāng)流行,它能顯著提高系統(tǒng)設(shè)計(jì)的運(yùn)行速度上限,在現(xiàn)代微、數(shù)字信號(hào)處理器、MCU、高速數(shù)字系統(tǒng)設(shè)計(jì)中都離不開(kāi)流水線技術(shù)。圖4與圖5是流水線設(shè)計(jì)的典型圖示,其中圖4未使用流水線設(shè)計(jì),圖5采用了2級(jí)流水線設(shè)計(jì),在設(shè)計(jì)中將延時(shí)較大的組合邏輯塊切割成兩塊延時(shí)大致相等的組合邏輯塊,并在這兩個(gè)邏輯塊中插入了觸發(fā)器,即滿足以下關(guān)系式:Ta=T1+T2,T1≈T2。通過(guò)分析可知,圖4中Fmax≈1/Ta;圖5中流水線第1級(jí)最高工作頻率Fmax1≈1/T1,流水線第2級(jí)最高工作頻率Fmax2≈1/T2≈1/T1,總設(shè)計(jì)最高頻率為Fmax≈Fmax1≈Fmax2≈1/T1,因此圖5設(shè)計(jì)速度較圖4提升了近一倍。

            (2)寄存器配平(Register Balancing)

            寄存器配平是通過(guò)配平寄存器之間的組合延時(shí)邏輯塊來(lái)實(shí)現(xiàn)速度優(yōu)化,兩個(gè)組合邏輯塊延時(shí)差別過(guò)大,導(dǎo)致設(shè)計(jì)總體工作頻率Fmax取決于T1,即最大的延時(shí)模塊,從而使設(shè)計(jì)整體性能受限。通過(guò)對(duì)圖7設(shè)計(jì)進(jìn)行改進(jìn),將延時(shí)較大的組合邏輯1的部分邏輯轉(zhuǎn)移到組合邏輯2中,成為圖8結(jié)構(gòu),以減小延時(shí)T1,使t1≈t2,且滿足T1+T2=t1+t2。寄存器配平后的圖8結(jié)構(gòu)中Fmax≈1/t1>1/T1,從而提高了設(shè)計(jì)速度。

            (3)關(guān)鍵路徑法

            關(guān)鍵路徑是指設(shè)計(jì)中從輸入到輸出經(jīng)過(guò)的延時(shí)最長(zhǎng)的邏輯路徑,優(yōu)化關(guān)鍵路徑是提高設(shè)計(jì)工作速度的有效方法。圖9中Td1>Td2,Td1>Td3,關(guān)鍵路徑為延時(shí)Td1的模塊,由于從輸入到輸出的延時(shí)取決于延時(shí)最長(zhǎng)路徑,而與其他延時(shí)較小的路徑無(wú)關(guān),因此減少Td1則能改善輸入到輸出的總延時(shí)。

            在優(yōu)化設(shè)計(jì)過(guò)程中關(guān)鍵路徑法可反復(fù)使用,直到不可能減少關(guān)鍵路徑延時(shí)為止。許多開(kāi)發(fā)工具都提供時(shí)序分析器可以幫助找到延時(shí)最長(zhǎng)的關(guān)鍵路徑,以便設(shè)計(jì)者改進(jìn)設(shè)計(jì)。對(duì)于結(jié)構(gòu)固定的設(shè)計(jì),關(guān)鍵路徑法是進(jìn)行速度優(yōu)化的首選方法,可與其他方法配合使用。

            在FPGA設(shè)計(jì)中,面積優(yōu)化實(shí)質(zhì)上就是資源利用優(yōu)化,面積優(yōu)化有多種實(shí)現(xiàn)方法,諸如資源共享、邏輯優(yōu)化、串行化,其中資源共享使用較多,下面舉例說(shuō)明。

            在利用FPGA設(shè)計(jì)數(shù)字系統(tǒng)時(shí)經(jīng)常遇到同一模塊需要反復(fù)被調(diào)用,例如多位乘法器、快速進(jìn)位加法器等算術(shù)模塊,它們占用芯片資源很多,使系統(tǒng)成本及器件功耗大幅上升,因而使用資源共享技術(shù)能夠顯著優(yōu)化資源。圖10和圖11是資源共享的一個(gè)典型實(shí)例,由圖可見(jiàn)使用資源共享技術(shù)節(jié)省了一個(gè)多位乘法器,從而達(dá)到減少資源消耗、優(yōu)化面積的目的。

            最后針對(duì)FPGA的設(shè)計(jì)實(shí)現(xiàn)提出一些改進(jìn)方案,F(xiàn)PGA實(shí)現(xiàn)分為編譯規(guī)劃、布局布線(PAR,Place AndRoute)、程序比特流文件生成三個(gè)階段,當(dāng)設(shè)計(jì)不滿足性能指標(biāo)或不能完全布線時(shí),可進(jìn)行以下改進(jìn)工作:

            ● 使用定時(shí)約束(Timing Constraints);

            ● 增大布局布線級(jí)別(PAR Effort);

            ● 對(duì)關(guān)鍵通路(Critical Paths )的數(shù)字邏輯重新設(shè)計(jì);

            ● 運(yùn)行重布線(Re-entrant Routing);

            ● 運(yùn)行MPPR(Multi-Pass Place Route,多通路布局布線);

            ● 運(yùn)行平面布局(Floorplan)查看布局圖及連通性。

            下面重點(diǎn)介紹Re-entrant Routing與MPPR,它們都可改進(jìn)布局布線結(jié)果,提高系統(tǒng)性能。其中Re-entrantRouting是指已運(yùn)行過(guò)PAR后再次運(yùn)行PAR,但跳過(guò)布局過(guò)程直接進(jìn)行布線,如圖12所示。MPPR則是根據(jù)不同功耗表(Costtables)來(lái)運(yùn)行PAR多次,通過(guò)對(duì)每一個(gè)PAR迭代評(píng)分來(lái)確定最好路徑并保留,其中評(píng)分依據(jù)是未布線的連線個(gè)數(shù)、連線延遲與時(shí)序約束。

            結(jié)束語(yǔ)

            當(dāng)今社會(huì),集成電路產(chǎn)業(yè)已成為高技術(shù)產(chǎn)業(yè)群的核心戰(zhàn)略產(chǎn)業(yè),已逐漸演化為設(shè)計(jì)、制造、封裝、測(cè)試協(xié)調(diào)發(fā)展的產(chǎn)業(yè)結(jié)構(gòu),它正進(jìn)入以知識(shí)產(chǎn)權(quán)為創(chuàng)新核心的新時(shí)期。這標(biāo)志著集成電路產(chǎn)業(yè)的競(jìng)爭(zhēng)已由技術(shù)競(jìng)爭(zhēng)、資本競(jìng)爭(zhēng)進(jìn)入到智力和知識(shí)產(chǎn)權(quán)競(jìng)爭(zhēng)的高級(jí)階段。

            FPGA在集成電路設(shè)計(jì)應(yīng)用中占有重要地位,現(xiàn)場(chǎng)可編程性是FPGA最突出的優(yōu)點(diǎn)。用戶通過(guò)利用強(qiáng)大的開(kāi)發(fā)工具,能在最短時(shí)間內(nèi)對(duì)FPGA內(nèi)部邏輯進(jìn)行反復(fù)設(shè)計(jì)及修改,直至滿意為止,這大大縮短了產(chǎn)品設(shè)計(jì)開(kāi)發(fā)周期,提高了最終產(chǎn)品性能。因而FPGA以其獨(dú)有的技術(shù)優(yōu)勢(shì)在電子設(shè)計(jì)領(lǐng)域得到越來(lái)越廣泛的應(yīng)用。隨著科學(xué)發(fā)展及工藝進(jìn)步,作為重中之重的集成電路設(shè)計(jì)業(yè)必將遇到更大的挑戰(zhàn)及發(fā)展機(jī)遇。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: FPGA EDA

          評(píng)論


          相關(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); })();