新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于C++TCL PLI聯合仿真下的芯片驗證方法研究

        基于C++TCL PLI聯合仿真下的芯片驗證方法研究

        作者: 時間:2009-11-05 來源:網絡 收藏

        4 軟件層關鍵技術
        編寫參考模型和記分牌屬于驗證過程的軟件層,采用C++語言編程實現。把這兩個驗證組件設計成兩個函數,分別為Pan_rm(char *s_indata,vectorchar*>vr_outdata)和Pan_check(char*s_indata,vectorchar*>vc_outdata),函數入口參數為字符指針類型的原因是腳本語言處理的全部是字符類型的變量,腳本層生成的激勵數據為字符類型。
        當仿真執行到Verilog代碼中任務的時候,函數中的calltf()會調用Pan_rm函數或Pan_check函數。在發送器中,calltf()把發送端共享緩存區中的數據取出并傳給。Pan_rm函數,Pan_rm函數把入口的字符類型變量轉換成整型變量,然后根據需求規格做相應的處理,最后把處理結果放入共享隊列;在接收器中,calltf()收集設計模塊的處理結果并傳給Pan_check函數,Pan_check函數取出共享隊列里面對應的Pan_rm函數的處理結果并與Pan_check函數的入口數據進行比較,把比較的結果存人到接收端共享緩存區,最后打印結果到一個輸出文件中以便驗證人員定位問題。

        本文引用地址:http://www.104case.com/article/191903.htm


        5 共享緩存區
        為了實現腳本層,時序層和軟件層能夠使用共享緩存區,要把C++擴展的命令、編寫的函數命令以及軟件層代碼寫在同一個C++工程文件里,定義全局變量作為共享緩存區實現三個層次的互聯,最后通過VC編譯代碼以動態庫的形式加載到仿真器里面去。


        6 結 語
        腳本命令在仿真之前運行,一經執行所有的激勵數據就會生成,在PLI函數的checktf()例程里面獲取modelsim的TCL解釋器,并用TCL初始化函數將其初始化,這樣擴展的TCL命令就可以在Modelsim的解釋器里使用了。

        需要注意的是,如果不在PLI函數的checktf()例程里面獲取并初始化Modelsim的TCL解釋器,那么PLI函數是加載在Modelsim內核的,如果要修改PLI函數里面調用的全局變量,要在擴展的TCL命令之前加上vsim_kernel,這樣才可以修改全局變量。當驗證組件準備好、驗證環境搭建完畢后,編寫自動運行腳本執行仿真過程,按照如圖2所示的操作流程自動進行驗證工作:運行自動腳本,啟動仿真器,加載動態庫,Modelsim的TCL解釋器運行TCL腳本,開始仿真推進仿真時間,觸發發送器的PLI函數發送數據,軟件層分析數據得到結果,設計模塊分析數據得到結果,觸發接收器的PLI函數收集數據,軟件層比較數據,打印分析結果。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 咸阳市| 繁昌县| 同心县| 宁安市| 象山县| 台湾省| 绥宁县| 阿拉尔市| 余江县| 清新县| 横山县| 平遥县| 盘锦市| 垣曲县| 新民市| 大港区| 沧州市| 军事| 宜兰县| 靖远县| 林周县| 阳谷县| 绍兴县| 温泉县| 黄大仙区| 永州市| 龙江县| 金昌市| 海城市| 牟定县| 鄂尔多斯市| 黄浦区| 永兴县| 镇安县| 明水县| 岳西县| 仪陇县| 营山县| 梁河县| 水城县| 麦盖提县|