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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應用 > 基于Modelsim FLI接口的FPGA仿真技術(shù)

          基于Modelsim FLI接口的FPGA仿真技術(shù)

          作者: 時間:2015-05-06 來源:網(wǎng)絡 收藏

            1、 及 FLI接口介紹

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

            是 Model Technology(Mentor Graphics的子公司)的 HDL 硬件描述語言仿真軟件,可以實現(xiàn) VHDL, Verilog,以及 VHDL-Verilog 混合設(shè)計的仿真。除此之外,還能夠與 C 語言一起實現(xiàn)對 HDL 設(shè)計文件的協(xié)同仿真。同時,相對于大多數(shù)的 HDL 仿真軟件來說,Modelsim 在仿真速度上也有明顯優(yōu)勢。這些特點使 Modelsim 越來越受到 EDA設(shè)計者、尤其是 設(shè)計者的青睞。

            Modelsim的 FLI接口(即 Foreign Language InteRFace)提供了C 語言動態(tài)鏈接程序與仿真器的接口,可以通過 C 語言編程對設(shè)計文件進行輔助仿真。

            2、協(xié)同仿真系統(tǒng)結(jié)構(gòu)及意義

            協(xié)同仿真就是利用仿真工具提供的外部接口,用其他程序設(shè)計語言(非 HDL 語言,如C 語言等)編程,輔助仿真工具進行仿真。Modelsim 提供了與 C 語言的協(xié)同仿真接口。以Windows 平臺為例,用戶通過 modelsim提供的 C 語言接口函數(shù)編程,生成動態(tài)鏈接庫,由modelsim調(diào)用這些動態(tài)鏈接庫進行輔助仿真(圖 1)。

            

           

            圖 1協(xié)同仿真示意圖

            Modelsim 與 C 語言協(xié)同仿真一是用于產(chǎn)生測試向量,避免手工編寫測試向量的繁瑣;二是可以根據(jù)程序計算結(jié)果自動檢查仿真結(jié)果正確與否;三是模擬其他模塊(如 RAM)的功能,在系統(tǒng)級對設(shè)計文件仿真。實際中一般是把一和二結(jié)合在一起,用程序產(chǎn)生仿真向量,一方面輸出給設(shè)計文件作為輸入,另一方面由程序本身對該向量計算,把得到的結(jié)果與仿真器的輸出結(jié)果比較,檢查邏輯是否正確(圖 2)。至于模擬功能,現(xiàn)在已經(jīng)有一些通用芯片的模擬程序,如 denali 可以模擬 RAM 的功能。另外,用戶也可以利用 modelsim 提供的編程接口自己模擬一些芯片的行為,然后與設(shè)計文件連接到一起仿真。

            

           

            圖 2 語言測試程序?qū)?VHDL 設(shè)計的協(xié)同仿真結(jié)構(gòu)圖

          fpga相關(guān)文章:fpga是什么



          上一頁 1 2 3 下一頁

          關(guān)鍵詞: Modelsim FPGA

          評論


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