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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于IP庫(kù)的可編程器件輔助設(shè)計(jì)軟件

          基于IP庫(kù)的可編程器件輔助設(shè)計(jì)軟件

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

          存放HDL程序的源文件的數(shù)據(jù)庫(kù)比較簡(jiǎn)單,對(duì)它的操作僅限于對(duì)文件內(nèi)容的復(fù)制,因此這里不作進(jìn)一步的討論。

          存放端口信號(hào)列表的數(shù)據(jù)庫(kù)結(jié)構(gòu),如表1所示。

          表1中,最上面的一行是數(shù)據(jù)庫(kù)的表頭,字段名代表了每一個(gè)字段下面內(nèi)容的具體含義。其中,module為電路單元模塊名;detail為存放模塊端口詳細(xì)信息的數(shù)據(jù)庫(kù)名;PortN代表了模塊中某個(gè)端口的名字, N是自然數(shù)。

          從表1中第二行開(kāi)始的記錄是不同的模塊。例如,第二行記錄所描述的模塊是帶有一個(gè)異步清零端的D觸發(fā)器,模塊名是DFF,模塊端口的詳細(xì)信息存放在DFF_D的數(shù)據(jù)庫(kù)文件中,總共有4個(gè)端口,分別是CLK、CLR、D和Q。數(shù)據(jù)庫(kù)文件 DFF_D中存放的是每個(gè)端口的方向和寬度。

          以DFF模塊為例,其對(duì)應(yīng)的數(shù)據(jù)庫(kù)文件DFF_D 的內(nèi)容如表2所示:

          數(shù)據(jù)庫(kù)文件DFF_D的字段有兩類,前一半的字段都是以Pn_io的形式出現(xiàn),代表了這個(gè)端口的流向,是輸入、輸出還是雙向。后一半的字段都是以Pn_bit的形式出現(xiàn),代表了這個(gè)端口信號(hào)的寬度。

          通過(guò)上面兩類數(shù)據(jù)庫(kù),就可以完整地掌握一個(gè)模塊的所有接口信息。

          在圖1所示的流程圖中,最重要的一步就是 進(jìn)行例化、組合。根據(jù)上述幾個(gè)數(shù)據(jù)庫(kù)的定義和描述,例化和組合的流程如圖3所示。圖中兩個(gè)預(yù)備處理(六邊形框)的工作是例化組合前的準(zhǔn)備工作。根據(jù)系統(tǒng)設(shè)計(jì)規(guī)范的要求,確定所需功能模塊的種類和數(shù)量,然后由設(shè)計(jì)者來(lái)確定所有模塊及其輸入輸出信號(hào)的名字。這些操作都可以通過(guò)鍵盤(pán)輸入的方式來(lái)完成,從而將例化和組合過(guò)程中所需的信息傳遞給HAD軟件。

          確定好所需的模塊之后,就可以逐一地對(duì)每個(gè)模塊進(jìn)行例化。首先打開(kāi)端口信號(hào)列表數(shù)據(jù)庫(kù),從中找到所選定的模塊。接著,打開(kāi)存放有模塊端口詳細(xì)信息的數(shù)據(jù)庫(kù),讀取端口的類型和數(shù)量,按照指定的連接信號(hào)名對(duì)模塊進(jìn)行例化。最后將例化后的HDL程序組合成一個(gè)文件。

          4 管理電路單元庫(kù)程序的設(shè)計(jì)思路

          管理電路單元庫(kù)的軟件所具備的功能是對(duì)電路單元進(jìn)行增加、刪除和修改等操作,流程如圖4所示。

          圖4中,管理流程主要由3個(gè)處理分支組成,分別是增加、刪除和修改電路單元分支。



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