新聞中心

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

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

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

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

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


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


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

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 万宁市| 连云港市| 哈巴河县| 阳江市| 高青县| 长垣县| 桦川县| 东平县| 布尔津县| 永嘉县| 眉山市| 怀安县| 交口县| 阳城县| 微博| 永清县| 镇原县| 博客| 新竹县| 黄大仙区| 纳雍县| 三门峡市| 锡林浩特市| 时尚| 灌阳县| 绍兴市| 都江堰市| 郸城县| 轮台县| 南靖县| 称多县| 绥滨县| 久治县| 大新县| 墨玉县| 营口市| 马鞍山市| 南澳县| 襄樊市| 佛山市| 商河县|