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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 對FPGA進行系統(tǒng)設(shè)計的Xilinx軟件使用方法

          對FPGA進行系統(tǒng)設(shè)計的Xilinx軟件使用方法

          作者: 時間:2010-06-22 來源:網(wǎng)絡(luò) 收藏

          Solution:在對最初步的規(guī)劃的時候,需要模塊劃分,模塊接口定義等工作。通常,我們只能在紙上。雖然在紙上我們可以很隨意地書寫,而用紙畫的不方便就在于,如果對某一個模塊進行較大改動,那么常常因為留出的空余紙張不夠,而導(dǎo)致拿一張新的白紙重新畫一遍。

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

          Question: 我們能不能使用進行規(guī)劃呢?

          Solution:答案是可以的。下面以ISE 7.1為例作說明:

          1) 畫一個空模塊,僅定義端口 - 新建Schematic,選擇Tools -> Symbol Wizard,里面可以定義Symbol名和端口屬性。完成后生成sym格式的Symbol。

          2) 將Symbol添加到原理圖 - 在Schematic的Symbol頁面,選擇Categories為工程文件夾,在Symbols列表中就可以看到剛剛新建的Symbol。將它添加到原理圖中。

          3) 重復(fù)1-2步驟,建立所有Symbol,并連接端口。

          4) 如需修改Symbol,可以直接在sym文件中修改 - 可以按右鍵-> Add -> Pin等等添加,也可以Copy已存在的Pin,然后改變PinName。但是在ISE7.1中改變Copy過來的PinName會連帶將原始PinName也改變。解決方法是用TextEditor比如UltraEditor打開這個sym文件,在里面修改。sym文件格式很易懂。改變Symbol端口后需要Update Schematic。在點到Schematic后會自動彈出Update對話框。

          5) 生成原理圖對應(yīng)的HDL文件 - 點擊Sources in Project列表中的sch文件,在Process窗口選擇View HDL Functional Model。這樣會自動生成Schematic對應(yīng)的HDL文件,其中例化了上面的各個模塊。要改變HDL文件類型,可以改變Project屬性中的Generated Simulation Language屬性。

          6) 生成Symbol對應(yīng)的HDL文件 - 在打開一個sym文件時,選擇Tools -> Generate HDL Template from Symbol。此時可以選擇生成VHDL還是Verilog的文件。

          7) 對每個模塊的內(nèi)容進行編寫。

          Summary: 雖然我個人偏好使用HDL進行,但是在設(shè)計初期使用這種Schematic方法進行自頂向下的設(shè)計真的十分方便。首先它增強了設(shè)計的可維護性和可讀性,使修改和傳播都更為方便;其次由于它可以自動生成HDL代碼,這樣對下一步的設(shè)計也起到了簡化操作的作用。

          Advice:在使用過程中碰到的幾個問題希望以后能解決
          1) 在編輯Symbol時改變復(fù)制后的PinName會同時改變原始PinName
          2) Symbol Wizard可以添加bus,只要給Pin命名A(4:0)就可以
          3) 只能在Pereference里改顏色,而不能改變某一特定連線的顏色,以起到區(qū)分控制線/數(shù)據(jù)通路的作用



          評論


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