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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用現(xiàn)成FPGA開(kāi)發(fā)板進(jìn)行ASIC原型開(kāi)發(fā)

          利用現(xiàn)成FPGA開(kāi)發(fā)板進(jìn)行ASIC原型開(kāi)發(fā)

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

          手工分割和綜合多個(gè)設(shè)計(jì)

          在手工分割的情況下,任何中心結(jié)構(gòu)(門(mén)控時(shí)鐘,Synopsys的DesignWare?實(shí)例等),在原始的源代碼中,在進(jìn)行分割之前,不得不手工將它們翻譯為與它們的相等同的代碼。除其它東西之外,這直接導(dǎo)致了兩個(gè)分離的代碼流,這可能失去同步,從而導(dǎo)致在原型和之間所代表的功能不同。

          當(dāng)開(kāi)始分割處理時(shí),工程師們嘗試將不同的功能模塊組集合在一起,在這里每組在不同的FPGA上實(shí)現(xiàn)。這種組合(分割)以門(mén)級(jí)的傳統(tǒng)方式實(shí)現(xiàn)。最近,一些流程支持在級(jí)分組,此時(shí)每個(gè)分成的組通過(guò)傳統(tǒng)的FPGA綜合工具,并且僅在這一點(diǎn)上,不同F(xiàn)PGA的實(shí)際資源利用是已知的。

          所有這些方案都有一個(gè)問(wèn)題,就是對(duì)于不同組的面積和資源的影響而言,工程師們是“臨時(shí)的盲人”,這導(dǎo)致了許多耗時(shí)的迭代。首先,工程師根據(jù)“A模塊可能將消耗‘xxx’的資源,而模塊B可能要求‘yyy’的資源”而進(jìn)行“估算”。這些估算是根據(jù)大量“分組”命令,然后綜合(在基于分割的情況下),然后是結(jié)果的分析,以及然后是大量的“取消組”和“再次分組”命令來(lái)估算不同的實(shí)現(xiàn)方式。

          該任務(wù)由于這一事實(shí)而進(jìn)一步混淆,該事實(shí)就是這些原型經(jīng)常被FPGA上的I/O管腳的數(shù)量所限制;一個(gè)無(wú)效的解決方案很容易耗費(fèi)一個(gè)器件上100%的I/O資源,然而與此同時(shí),僅僅其相對(duì)少量的內(nèi)部邏輯資源可以實(shí)現(xiàn)。為了克服這些I/O限制,I/O的多重分組和/或在多個(gè)FPGA中復(fù)制同一個(gè)邏輯模塊是必要的。(為了達(dá)到特定的性能目標(biāo),邏輯復(fù)制也是經(jīng)常要求的。)

          假設(shè)在這種原型中使用的每個(gè)FPGA可能有超過(guò)1000個(gè)管腳,一項(xiàng)管理連接的電子表格方法能很容易地包含幾千個(gè)單元。不足為奇地是,記錄分配給每個(gè)FPGA的模塊和連接矩陣(在不同F(xiàn)PGA之間的連接)是一項(xiàng)繁重的任務(wù),這將是資源密集型的、耗時(shí)的以及容易出錯(cuò)的。



          關(guān)鍵詞: FPGA ASIC NRE RTL

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();