專利名稱:邏輯電路仿真測試方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及邏輯電路的仿真測試技術(shù)。
背景技術(shù):
通常,邏輯電路的設(shè)計(jì)是將所要完成的邏輯需求映射成一些生產(chǎn)所需的文件,如網(wǎng)表、版圖等。數(shù)字邏輯電路在編碼設(shè)計(jì)完成后,投入生產(chǎn)之前,需要對(duì)所述設(shè)計(jì)的邏輯電路進(jìn)行仿真測試,以驗(yàn)證其設(shè)計(jì)是否正確,從而可以有效地降低生產(chǎn)風(fēng)險(xiǎn)。
數(shù)字邏輯電路通常使用硬件設(shè)計(jì)語言描述,一個(gè)數(shù)字邏輯電路通常是由多個(gè)硬件語言代碼文件組成。在進(jìn)行仿真測試時(shí),通常利用一些軟件工具,如EDA(Electronic Design Automatic,電子設(shè)計(jì)自動(dòng)化)仿真器軟件,仿真硬件語言描述的數(shù)字邏輯電路。
目前許多大規(guī)模的數(shù)字邏輯電路都具有CPU(中央處理器)接口,通過所述CPU接口CPU可以訪問數(shù)字邏輯電路內(nèi)部的寄存器或RAM(RandomAccess Memory,隨機(jī)訪問內(nèi)存)。例如在數(shù)字邏輯電路工作之前通過CPU接口實(shí)現(xiàn)CPU對(duì)數(shù)字邏輯電路中的寄存器進(jìn)行配置;在數(shù)字邏輯電路工作過程中,CPU也可以通過所述CPU接口對(duì)數(shù)字邏輯電路的工作狀態(tài)進(jìn)行查詢,并根據(jù)查詢結(jié)果再次更改數(shù)字邏輯電路中的配置。因此在仿真測試過程中,需要模擬實(shí)際應(yīng)用環(huán)境中CPU對(duì)數(shù)字邏輯電路進(jìn)行的訪問。
與本發(fā)明相關(guān)的現(xiàn)有技術(shù)如圖1所示,其是在仿真測試前將產(chǎn)生的配置數(shù)據(jù)存放到配置數(shù)據(jù)文件中,仿真測試開始后,通過CPU BFM(Bus FunctionModel,總線功能模塊)將從所述配置數(shù)據(jù)文件中讀取的配置數(shù)據(jù),轉(zhuǎn)換成物理接口芯片的輸入口總線上連續(xù)的電平信號(hào),然后通過CPU接口將所述電平信號(hào)寫入到所述數(shù)字邏輯電路的寄存器中。這樣就完成所述數(shù)字邏輯電路的配置工作。
由現(xiàn)有技術(shù)的技術(shù)方案可以看出,CPU BFM一旦處理完配置數(shù)據(jù)文件,就不再進(jìn)行CPU讀寫操作,因此其存在如下缺陷在仿真過程中,不方便更改配置,也不方便實(shí)時(shí)讀取數(shù)字邏輯的寄存器,無法根據(jù)查詢結(jié)果再次更改配置。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種邏輯電路仿真測試方法和系統(tǒng),通過本發(fā)明,CPU能夠?qū)崟r(shí)對(duì)數(shù)字邏輯電路的寄存器進(jìn)行讀寫操作,方便修改數(shù)字邏輯電路的配置數(shù)據(jù)。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供一種對(duì)數(shù)字邏輯電路進(jìn)行仿真測試的系統(tǒng),包括仿真器、CPU測試命令模塊和CPU BFM模塊;通過CPU測試命令模塊將測試命令下發(fā)給所述CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);當(dāng)所述CPU BFM模塊接收到測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。
其中所述的系統(tǒng)還包括中央處理單元程序語言接口CPU PLI模塊;用于對(duì)所述CPU測試命令模塊下發(fā)的測試命令進(jìn)行處理,并將處理后的測試命令提供給CPU BFM模塊;同時(shí)喚醒CPU BFM模塊,使所述CPU BFM模塊進(jìn)入測試執(zhí)行狀態(tài);以及,在進(jìn)行測試的過程中,用于對(duì)CPU BFM模塊反饋的命令執(zhí)行結(jié)果進(jìn)行處理,并將處理后的結(jié)果暫存,用于提供給CPU測試命令模塊讀取;并觸發(fā)仿真器進(jìn)入暫停仿真狀態(tài),使CPU測試命令模塊重新獲得對(duì)仿真器的控制權(quán)。
本發(fā)明提供一種邏輯電路仿真測試方法,其包括A、通過CPU測試命令模塊將測試命令發(fā)送給CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);B、所述CPU BFM模塊獲取到所述測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。
其中所述的方法還包括在仿真器進(jìn)行初始化時(shí),CPU BFM模塊將休眠控制位句柄傳遞給CPU測試命令模塊。
其中所述的方法還包括在仿真器進(jìn)行初始化時(shí),CPU BFM模塊將休眠控制位句柄傳遞CPU PLI模塊。
其中,所述步驟A具體包括用戶通過CPU測試命令模塊實(shí)時(shí)將測試命令發(fā)送給CPU PLI模塊,并通過所述CPU PLI模塊喚醒CPU BFM模塊;所述CPU BFM模塊被喚醒后,從所述CPU PLI模塊中獲取所述測試命令,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài)。
其中,所述步驟A具體包括A1、用戶通過CPU測試命令模塊實(shí)時(shí)下發(fā)測試命令給CPU PLI模塊;A2、所述CPU PLI模塊接收到所述測試命令后,對(duì)所述測試命令進(jìn)行處理并緩存,同時(shí)喚醒CPU BFM模塊,使所述CPU BFM模塊進(jìn)入測試執(zhí)行狀態(tài);A3、當(dāng)所述CPU BFM模塊被喚醒后,向CPU PLI模塊申請(qǐng)測試命令;A4、所述CPU BFM模塊判斷是否申請(qǐng)到所述測試命令,若申請(qǐng)到,則獲取所述測試命令,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);若申請(qǐng)不到,則進(jìn)入休眠狀態(tài)。
其中,在進(jìn)入休眠狀態(tài)之后,還包括當(dāng)接收到CPU PLI模塊的撤銷休眠命令后,進(jìn)入激活狀態(tài),然后向CPUPLI模塊申請(qǐng)測試命令。
其中,所述步驟B具體包括當(dāng)所述CPU BFM模塊獲取到所述測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊;所述CPU PLI模塊將所述命令執(zhí)行結(jié)果提供給所述CPU測試命令模塊。
其中,所述步驟B具體包括B1、所述CPU BFM模塊獲取到所述測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊;B2、所述CPU PLI模塊緩存所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果;B3、所述CPU測試命令模塊從所述CPU PLI模塊中讀取所述命令執(zhí)行結(jié)果。
其中,在所述步驟B2與步驟B3之間還包括B4、所述CPU PLI模塊執(zhí)行暫停仿真器的仿真測試操作;B5、仿真器暫停仿真,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
其中,所述步驟B具體包括B6、所述CPU BFM模塊一旦獲取到所述測試命令,則執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊;B7、所述CPU PLI模塊對(duì)所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果進(jìn)行處理,并將處理后的結(jié)果發(fā)送給所述CPU測試命令模塊。
其中,所述步驟B還包括
當(dāng)所述CPU BFM模塊將命令執(zhí)行結(jié)果反饋給所述所述CPU PLI模塊后,進(jìn)入休眠狀態(tài)。
其中,所述步驟B還包括B8、所述CPU測試命令模塊接收到所述命令執(zhí)行結(jié)果后,執(zhí)行暫停仿真測試的操作;B9、仿真器暫停仿真測試操作,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明中用戶通過CPU測試命令模塊能夠?qū)崟r(shí)將測試命令發(fā)送給CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);所述CPU BFM模塊獲取到所述測試命令后,在仿真器運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。因此通過本發(fā)明,CPU能夠?qū)崟r(shí)對(duì)數(shù)字邏輯電路的寄存器進(jìn)行讀寫操作,方便修改被測設(shè)備的配置數(shù)據(jù);并且用戶可以根據(jù)命令執(zhí)行結(jié)果編制控制軟件來訪問被測設(shè)備內(nèi)部的寄存器或RAM,便于實(shí)現(xiàn)自動(dòng)化測試,使測試過程比較靈活,使測試范圍更為充分。
圖1為現(xiàn)有技術(shù)提供的系統(tǒng)的工作原理圖;圖2為本發(fā)明提供的第一實(shí)施例中的系統(tǒng)工作原理圖;圖3為本發(fā)明提供的第二實(shí)施例中的系統(tǒng)工作原理圖;圖4為本發(fā)明提供的第三實(shí)施例中的仿真測試過程時(shí)序圖;圖5為本發(fā)明提供的第四實(shí)施例中的仿真測試過程時(shí)序圖。
具體實(shí)施例方式
本發(fā)明提供一種邏輯電路仿真測試方法和系統(tǒng),其核心為用戶通過CPU測試命令模塊實(shí)時(shí)將測試命令發(fā)送給CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);所述CPU BFM模塊獲取到所述測試命令后,在仿真器運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。
針對(duì)本發(fā)明所述的系統(tǒng),本發(fā)明提供了第一實(shí)施例,其圖2所示,包括CPU測試命令模塊、CPU PLI(Progrmming Language Interface,程序語言接口)模塊、CPU BFM模塊和仿真器。用戶可以自由修改CPU BFM模塊,以便適配各種各樣的CPU接口總線時(shí)序。CPU測試命令模塊和CPU PLI模塊,是本發(fā)明的核心模塊,發(fā)布后的模塊代碼,用戶不可見,也無法修改,不影響正常使用。
在仿真器啟動(dòng)并進(jìn)行初始化時(shí),CPU BFM模塊調(diào)用CPU PLI模塊提供的接口,將休眠控制位句柄傳遞給CPU PLI模塊,以便CPU PLI模塊在需要的時(shí)候取消CPU BFM模塊的休眠狀態(tài)。
CPU測試命令模塊提供給用戶兩個(gè)CPU讀寫操作命令,分別是CPU讀命令(cpu_rd)和CPU寫命令(cpu_wr)。讀命令有一個(gè)地址參數(shù),有返回值;寫命令有地址和數(shù)據(jù)兩個(gè)參數(shù),無返回值。
當(dāng)用戶操作仿真器(仿真器處于用戶控制狀態(tài))執(zhí)行cpu_rd或cpu_wr命令時(shí),CPU測試命令模塊將命令數(shù)據(jù)下發(fā)到CPU PLI模塊,并調(diào)用仿真器的仿真控制運(yùn)行(RUN)命令,使仿真器進(jìn)入仿真執(zhí)行狀態(tài)。CPU PLI模塊緩存所述CPU測試命令模塊下發(fā)的命令數(shù)據(jù),并取消CPU BFM的休眠控制位。
在仿真執(zhí)行過程中,此時(shí)CPU BFM模塊已被喚醒,處于非休眠狀態(tài)。CPU BFM模塊向CPU PLI模塊申請(qǐng)CPU測試命令,如果沒有申請(qǐng)到CPU測試命令,CPU BFM模塊就進(jìn)入休眠狀態(tài);如果申請(qǐng)到CPU測試命令,CPUBFM模塊將執(zhí)行命令,產(chǎn)生CPU總線時(shí)序,將讀或?qū)懖僮鱾鬟f給數(shù)字邏輯電路,當(dāng)命令執(zhí)行完畢后,CPU BFM模塊將執(zhí)行結(jié)果告知給CPU PLI模塊,然后,CPU BFM模塊進(jìn)入休眠狀態(tài)。
當(dāng)CPU PLI模塊接收到CPU BFM模塊的測試命令執(zhí)行結(jié)果告知后,執(zhí)行暫停仿真器的操作,并觸發(fā)仿真器進(jìn)入暫停仿真狀態(tài),使CPU測試命令模塊重新獲得對(duì)仿真器的控制權(quán)。仿真器暫停仿真,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
CPU測試命令模塊,從CPU PLI模塊得到執(zhí)行結(jié)果。對(duì)于cpu_rd命令,則得到讀數(shù)據(jù);對(duì)于cpu_wr命令,則僅僅是命令執(zhí)行結(jié)束返回。
針對(duì)本發(fā)明所述的系統(tǒng),本發(fā)明提供了第二實(shí)施例,其圖3所示,包括CPU測試命令模塊、CPU BFM模塊和仿真器;在仿真器啟動(dòng)并進(jìn)行初始化時(shí),CPU BFM模塊將休眠控制位句柄傳遞給CPU測試命令模塊,以便CPU測試命令模塊在需要的時(shí)候取消CPU BFM模塊的休眠狀態(tài)。
CPU測試命令模塊提供給用戶兩個(gè)CPU測試命令,分別是CPU讀命令(cpu_rd)和CPU寫命令(cpu_wr)。讀命令有一個(gè)地址參數(shù),有返回值;寫命令有地址和數(shù)據(jù)兩個(gè)參數(shù),無返回值。
用戶操作仿真器(仿真器處于用戶控制狀態(tài))執(zhí)行cpu_rd或cpu_wr命令時(shí),CPU測試命令模塊實(shí)時(shí)將命令數(shù)據(jù)下發(fā)到CPU BFM模塊。同時(shí)取消CPU BFM模塊的休眠控制位,然后調(diào)用仿真器的仿真控制運(yùn)行(RUN)命令,使仿真器進(jìn)入仿真執(zhí)行狀態(tài)。
CPU BFM模塊被喚醒后,CPU BFM模塊將執(zhí)行測試命令,產(chǎn)生CPU總線時(shí)序,將讀或?qū)懖僮鱾鬟f給外部設(shè)備,如數(shù)字邏輯電路,當(dāng)測試命令執(zhí)行完畢后,CPU BFM模塊將執(zhí)行結(jié)果反饋給CPU測試命令模塊,隨后,CPUBFM模塊進(jìn)入休眠狀態(tài)。
當(dāng)CPU測試命令模塊接收到CPU BFM模塊的測試命令執(zhí)行結(jié)果后,執(zhí)行暫停仿真器的操作。仿真器暫停仿真,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
針對(duì)本發(fā)明所述的方法,本發(fā)明提供了第三實(shí)施例,如圖4所示,包括步驟1,在啟動(dòng)仿真器進(jìn)行初始化的過程中,CPU BFM模塊將休眠控制位句柄傳遞給CPU測試命令模塊。
CPU BFM模塊將休眠控制位句柄傳遞給CPU測試命令模塊后,CPU測試命令模塊在需要的時(shí)候可以利用休眠控制位句柄所述取消CPU BFM模塊的休眠狀態(tài)。
步驟2,用戶通過CPU測試命令模塊實(shí)時(shí)將測試命令發(fā)送給所述CPUBFM模塊,同時(shí)將CPU BFM模塊喚醒,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài)。
步驟3,一旦所述CPU BFM模塊獲取到所述測試命令后,則在仿真器運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊,然后進(jìn)入休眠狀態(tài)。
步驟4,當(dāng)所述CPU測試命令模塊接收到所述命令執(zhí)行結(jié)果后,執(zhí)行暫停仿真測試的操作,并將結(jié)果反饋給用戶。
步驟5,當(dāng)暫停仿真測試的操作執(zhí)行完畢后,仿真器退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
針對(duì)本發(fā)明所述的方法,本發(fā)明提供了第四實(shí)施例,如圖5所示,包括步驟1,在啟動(dòng)仿真器并進(jìn)行初始化的過程中,CPU BFM模塊調(diào)用CPUPLI模塊提供的接口,將休眠控制位句柄傳遞給CPU PLI模塊,以便CPU PLI模塊在需要的時(shí)候取消CPU BFM模塊的休眠狀態(tài)。
步驟2,CPU測試命令模塊下發(fā)測試命令給CPU PLI模塊。
步驟3,CPU PLI模塊緩存所述測試命令,同時(shí)撤銷CPU BFM的休眠控制位。
然后執(zhí)行步驟4,CPU測試命令模塊調(diào)用仿真器運(yùn)行命令,如RUN(運(yùn)行)命令,使仿真器進(jìn)入開始仿真的執(zhí)行狀態(tài)。
當(dāng)仿真器進(jìn)入仿真執(zhí)行狀態(tài)后,進(jìn)行如下過程步驟5,CPU BFM模塊從CPU PLI模塊中申請(qǐng)測試命令。
步驟6、判斷是否申請(qǐng)到測試命令,如果申請(qǐng)到,則執(zhí)行步驟7;如果申請(qǐng)不到,則執(zhí)行步驟11,進(jìn)入休眠狀態(tài),并當(dāng)接收到CPU PLI模塊的撤銷休眠控制位命令后,進(jìn)入激活狀態(tài),然后轉(zhuǎn)向步驟5。
步驟7,CPU BFM模塊執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將執(zhí)行結(jié)果告知CPU PLI模塊,然后CPU BFM模塊進(jìn)入休眠狀態(tài)。
步驟7中,當(dāng)所述測試命令為讀命令時(shí),則CPU BFM模塊通過CPU接口讀取外部設(shè)備,如數(shù)字邏輯電路的數(shù)據(jù)。當(dāng)所述測試命令為寫命令時(shí),則CPU BFM模塊通過CPU接口將數(shù)據(jù)寫入到外部設(shè)備,如數(shù)字邏輯電路。當(dāng)測試命令執(zhí)行完畢后,CPU BFM模塊能夠獲得相應(yīng)的執(zhí)行結(jié)果。對(duì)于讀命令,CPU BFM模塊能夠獲得讀取的數(shù)據(jù);對(duì)于寫命令,CPU BFM模塊僅僅能夠獲得返回的命令執(zhí)行結(jié)束信息。當(dāng)CPU BFM模塊獲得相應(yīng)的執(zhí)行結(jié)果后,CPU BFM模塊將執(zhí)行結(jié)果告知CPU PLI模塊,然后CPU BFM模塊進(jìn)入休眠狀態(tài),并當(dāng)接收到CPU PLI模塊的撤銷休眠控制位命令后,進(jìn)入激活狀態(tài),然后轉(zhuǎn)向步驟5。
步驟8,當(dāng)CPU PLI模塊接收到CPU BFM模塊的測試命令執(zhí)行結(jié)果告知后,從CPU測試命令模塊調(diào)用并執(zhí)行暫停仿真器的仿真工作的控制命令。
之后執(zhí)行步驟9,仿真器退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
最后,執(zhí)行步驟10,CPU測試命令模塊從CPU PLI模塊讀取并得到測試命令的執(zhí)行結(jié)果。對(duì)于cpu_rd命令,則得到讀數(shù)據(jù);對(duì)于cpu_wr命令,則僅僅是返回的命令執(zhí)行結(jié)束信息。所述CPU測試命令模塊得到所述命令執(zhí)行結(jié)果后,將結(jié)果反饋給用戶。
針對(duì)本發(fā)明所述的方法提供的第五實(shí)施例,其與第四實(shí)施例的區(qū)別在于第四實(shí)施例中,當(dāng)CPU PLI模塊獲取到所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果后,將其進(jìn)行緩存等待CPU測試命令模塊讀取。而此實(shí)施例中,當(dāng)CPU PLI模塊獲取到所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果后,對(duì)其進(jìn)行處理,然后發(fā)送給所述CPU測試命令模塊。其實(shí)施過程包括首先,在仿真器進(jìn)行初始化時(shí),CPU BFM模塊將休眠控制位句柄傳遞CPU PLI模塊,以便CPU PLI模塊在需要的時(shí)候取消CPU BFM模塊的休眠狀態(tài)。
然后,用戶通過CPU測試命令模塊實(shí)時(shí)下發(fā)測試命令給CPU PLI模塊。所述CPU PLI模塊接收到所述測試命令后,對(duì)所述測試命令進(jìn)行處理后發(fā)送給所述CPU BFM模塊,同時(shí)喚醒CPU BFM模塊,即取消CPU BFM模塊的休眠狀態(tài),并從CPU測試命令模塊中調(diào)用仿真控制命令,使仿真器進(jìn)入測試執(zhí)行狀態(tài)。
所述CPU BFM模塊一旦接收到所述測試命令,則執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊,隨后進(jìn)入休眠狀態(tài)。
接著,所述CPU PLI模塊對(duì)所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果進(jìn)行處理后,發(fā)送給所述CPU測試命令模塊。
當(dāng)所述CPU測試命令模塊接收到所述命令執(zhí)行結(jié)果后,執(zhí)行暫停仿真測試的操作。仿真器暫停仿真,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
針對(duì)本發(fā)明所述的方法提供了第六實(shí)施例,其與第三實(shí)施例的不同之處在于,所述測試命令為突發(fā)讀寫命令。突發(fā)讀寫命令用于模擬支持突發(fā)讀寫的CPU,突發(fā)讀寫命令包含的信息有讀寫起始地址、讀寫字節(jié)數(shù)、寫數(shù)據(jù)列表(僅出現(xiàn)在突發(fā)寫命令中),當(dāng)所述CPU BFM模塊從所述CPU PLI模塊中取得所述突發(fā)讀寫命令時(shí),同時(shí)獲得一個(gè)起始地址。CPU BFM從讀寫起始地址開始,執(zhí)行突發(fā)讀寫(根據(jù)不同的CPU,CPU BFM的行為可不同),直到完成指定的讀寫字節(jié)數(shù)。
由上述本發(fā)明的具體實(shí)施方案可以看出,本發(fā)明中的CPU BFM模塊在無CPU讀寫操作時(shí),能夠自動(dòng)轉(zhuǎn)入休眠狀態(tài);CPU測試命令模塊能夠?qū)崟r(shí)將測試命令發(fā)送給所述CPU BFM模塊,一旦測試命令在開始執(zhí)行時(shí),自動(dòng)喚醒正在休眠CPU BFM模塊;所述CPU BFM模塊執(zhí)行所述測試命令完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。由此可見,通過本發(fā)明,CPU能夠?qū)崟r(shí)對(duì)數(shù)字邏輯電路的寄存器進(jìn)行讀寫操作,方便修改被測設(shè)備的配置數(shù)據(jù);并且用戶可以根據(jù)命令執(zhí)行結(jié)果編制控制軟件來訪問被測設(shè)備內(nèi)部的寄存器或RAM。如使用TCL腳本編寫控制軟件,通過控制軟件中提供的命令,查詢和控制數(shù)字邏輯電路內(nèi)部的寄存器或RAM。從而便于實(shí)現(xiàn)自動(dòng)化測試,使測試過程比較靈活,使測試范圍更為充分。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種邏輯電路仿真測試系統(tǒng),包括仿真器,其特征在于,還包括中央處理單元CPU測試命令模塊和中央處理單元總線功能CPU BFM模塊;通過CPU測試命令模塊將測試命令下發(fā)給所述CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);當(dāng)所述CPU BFM模塊接收到測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,還包括中央處理單元程序語言接口CPU PLI模塊;用于對(duì)所述CPU測試命令模塊下發(fā)的測試命令進(jìn)行處理,并將處理后的測試命令提供給CPU BFM模塊;同時(shí)喚醒CPU BFM模塊,使所述CPU BFM模塊進(jìn)入測試執(zhí)行狀態(tài);以及,在進(jìn)行測試的過程中,用于對(duì)CPU BFM模塊反饋的命令執(zhí)行結(jié)果進(jìn)行處理,并將處理后的結(jié)果暫存,用于提供給CPU測試命令模塊讀??;并觸發(fā)仿真器進(jìn)入暫停仿真狀態(tài),使CPU測試命令模塊重新獲得對(duì)仿真器的控制權(quán)。
3.一種邏輯電路仿真測試方法,其特征在于,包括A、通過CPU測試命令模塊將測試命令發(fā)送給CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);B、所述CPU BFM模塊獲取到所述測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括在仿真器進(jìn)行初始化時(shí),CPU BFM模塊將休眠控制位句柄傳遞給CPU測試命令模塊。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括在仿真器進(jìn)行初始化時(shí),CPU BFM模塊將休眠控制位句柄傳遞CPU PLI模塊。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟A具體包括用戶通過CPU測試命令模塊實(shí)時(shí)將測試命令發(fā)送給CPU PLI模塊,并通過所述CPU PLI模塊喚醒CPU BFM模塊;所述CPU BFM模塊被喚醒后,從所述CPU PLI模塊中獲取所述測試命令,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài)。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟A具體包括A1、用戶通過CPU測試命令模塊實(shí)時(shí)下發(fā)測試命令給CPU PLI模塊;A2、所述CPU PLI模塊接收到所述測試命令后,對(duì)所述測試命令進(jìn)行處理并緩存,同時(shí)喚醒CPU BFM模塊,使所述CPU BFM模塊進(jìn)入測試執(zhí)行狀態(tài);A3、當(dāng)所述CPU BFM模塊被喚醒后,向CPU PLI模塊申請(qǐng)測試命令;A4、所述CPU BFM模塊判斷是否申請(qǐng)到所述測試命令,若申請(qǐng)到,則獲取所述測試命令,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);若申請(qǐng)不到,則進(jìn)入休眠狀態(tài)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在進(jìn)入休眠狀態(tài)之后,還包括當(dāng)接收到CPU PLI模塊的撤銷休眠命令后,進(jìn)入激活狀態(tài),然后向CPUPLI模塊申請(qǐng)測試命令。
9.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B具體包括當(dāng)所述CPU BFM模塊獲取到所述測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊;所述CPU PLI模塊將所述命令執(zhí)行結(jié)果提供給所述CPU測試命令模塊。
10.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B具體包括B1、所述CPU BFM模塊獲取到所述測試命令后,在仿真器的運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊;B2、所述CPU PLI模塊緩存所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果;B3、所述CPU測試命令模塊從所述CPU PLI模塊中讀取所述命令執(zhí)行結(jié)果。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,在所述步驟B2與步驟B3之間還包括B4、所述CPU PLI模塊執(zhí)行暫停仿真器的仿真測試操作;B5、仿真器暫停仿真,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
12.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B具體包括B6、所述CPU BFM模塊獲取到所述測試命令后,則執(zhí)行所述測試命令,并當(dāng)測試命令執(zhí)行完畢后,將命令執(zhí)行結(jié)果反饋給所述CPU PLI模塊;B7、所述CPU PLI模塊對(duì)所述CPU BFM模塊反饋的命令執(zhí)行結(jié)果進(jìn)行處理,并將處理后的結(jié)果發(fā)送給所述CPU測試命令模塊。
13.根據(jù)權(quán)利要求9或12所述的方法,其特征在于,所述步驟B還包括當(dāng)所述CPU BFM模塊將命令執(zhí)行結(jié)果反饋給所述所述CPU PLI模塊后,進(jìn)入休眠狀態(tài)。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟B還包括B8、所述CPU測試命令模塊接收到所述命令執(zhí)行結(jié)果后,執(zhí)行暫停仿真測試的操作;B9、仿真器暫停仿真測試操作,退出仿真執(zhí)行狀態(tài),進(jìn)入用戶控制狀態(tài)。
全文摘要
本發(fā)明涉及一種邏輯電路仿真測試方法和系統(tǒng),其核心是用戶通過CPU測試命令模塊能夠?qū)崟r(shí)將測試命令發(fā)送給所述CPU BFM模塊,并調(diào)用仿真器的運(yùn)行命令使仿真器進(jìn)入運(yùn)行狀態(tài);所述CPU BFM模塊獲取到所述測試命令后,在仿真器運(yùn)行狀態(tài)下執(zhí)行所述測試命令,并將命令執(zhí)行結(jié)果反饋給所述CPU測試命令模塊。通過本發(fā)明,CPU能夠?qū)崟r(shí)對(duì)數(shù)字邏輯電路的寄存器進(jìn)行讀寫操作,方便修改被測設(shè)備的配置數(shù)據(jù);并且用戶可以根據(jù)命令執(zhí)行結(jié)果編制控制軟件來訪問被測設(shè)備內(nèi)部的寄存器或RAM,便于實(shí)現(xiàn)自動(dòng)化測試,使測試過程比較靈活,使測試范圍更為充分。
文檔編號(hào)G06F17/50GK1866263SQ20061005831
公開日2006年11月22日 申請(qǐng)日期2006年3月1日 優(yōu)先權(quán)日2006年3月1日
發(fā)明者王進(jìn)成, 易敏, 程智輝, 王萬財(cái) 申請(qǐng)人:華為技術(shù)有限公司