交互式數(shù)字集成電路仿真驗證方法、服務(wù)器、客戶端及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及信息科學(xué)與技術(shù)領(lǐng)域,公開了一種交互式數(shù)字集成電路仿真驗證方法、服務(wù)器、客戶端及系統(tǒng)。本發(fā)明中,客戶端在本地編寫代碼,生成代碼文件,經(jīng)初步語法檢測,將生成的代碼文件上傳至服務(wù)器端,服務(wù)器收到上述文件代碼后,調(diào)用仿真工具運行上述代碼文件,并獲取代碼文件的運行結(jié)果。服務(wù)器在獲取運行結(jié)果后通過關(guān)鍵詞檢測的方式對運行結(jié)果進行過濾,并將過濾后的結(jié)果文件返回給客戶端。從而在不具備電路模擬仿真工具的情況下,仍能實現(xiàn)在線編輯硬件描述語言代碼進行交互式數(shù)字集成電路仿真的驗證,有效的提高了仿真工具的利用率和學(xué)習(xí)的效率,大大的節(jié)約了成本。
【專利說明】
交互式數(shù)字集成電路仿真驗證方法、服務(wù)器、客戶端及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息科學(xué)與技術(shù)領(lǐng)域,特別涉及一種數(shù)字集成電路的仿真驗證技術(shù)。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的發(fā)展,集成電路尤其是數(shù)字集成電路在社會生活中的應(yīng)用越來越廣泛。數(shù)字集成電路發(fā)展迅速,同時其更新?lián)Q代的周期也非常短,這就對數(shù)字集成電路的設(shè)計提出了更高的要求。
[0003]當前,最常見的設(shè)計方法是電子設(shè)計自動化(Electronic Design Automat1n,EDA)技術(shù),設(shè)計者在EDA軟件平臺上,使用硬件描述語言(Hardware Descript1nLanguage,HDL)來描述電路的邏輯和時序功能。利用EDA工具,由計算機自動完成仿真,極大程度上提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計者的勞動強度。
[0004]但本發(fā)明的發(fā)明人發(fā)現(xiàn),由于對HDL語言編譯和仿真的工具都極其昂貴,所以一般的學(xué)習(xí)者難以獲得,對學(xué)習(xí)此類技能產(chǎn)生了極大的困難。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種交互式數(shù)字集成電路仿真驗證方法、服務(wù)器、客戶端及系統(tǒng),使得不需要在客戶端安裝昂貴的仿真驗證軟件,從而實現(xiàn)無需人工介入的交互式數(shù)字集成電路仿真的驗證,有效地提高學(xué)習(xí)者的學(xué)習(xí)效率,節(jié)約學(xué)習(xí)成本。
[0006]為解決上述技術(shù)問題,本發(fā)明的實施方式提供了一種交互式數(shù)字集成電路仿真驗證方法,包含以下步驟:
[0007]客戶端根據(jù)在本地編寫的代碼生成代碼文件,并將生成的代碼文件上傳至服務(wù)器端;
[0008]所述服務(wù)器端收到所述代碼文件后,調(diào)用運行環(huán)境程序運行所述代碼文件;
[0009]所述服務(wù)器端獲取所述代碼文件的運行結(jié)果;
[0010]所述服務(wù)器端將獲取的所述運行結(jié)果返回給所述客戶端。
[0011]本發(fā)明的實施方式還提供了一種交互式數(shù)字集成電路仿真驗證的服務(wù)器,包含:
[0012]接收單元,用于接收客戶端上傳的代碼文件;
[0013]運行單元,用于在所述接收單元收到所述代碼文件后,調(diào)用運行環(huán)境程序運行所述代碼文件;
[0014]結(jié)果獲取單元,用于獲取所述代碼文件的運行結(jié)果;
[0015]返回單元,用于將所述結(jié)果獲取單元獲取的所述運行結(jié)果返回給所述客戶端。
[0016]本發(fā)明的實施方式還提供了一種交互式數(shù)字集成電路仿真驗證的客戶端,包含:
[0017]生成模塊,用于將客戶端用戶在本地編寫的代碼,生成代碼文件;
[0018]上傳模塊,用于將所述生成模塊生成的代碼文件上傳至服務(wù)器端;
[0019]結(jié)果接收模塊,用于接收來自所述服務(wù)器端的所述代碼文件的運行結(jié)果。
[0020]本發(fā)明的實施方式還提供了一種交互式數(shù)字集成電路仿真驗證系統(tǒng),包含:上述服務(wù)器和至少一個上述客戶端。
[0021]本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,給出了一種在不具備模擬仿真軟件的條件下,仍能進行交互式數(shù)字集成電路仿真驗證的方法??蛻舳嗽诒镜剡M行代碼的編寫,編輯完成后會形成對應(yīng)的代碼文件,代碼文件被上傳到服務(wù)器端,服務(wù)器在收到客戶端上傳的編碼文件后,調(diào)用相應(yīng)的仿真工具運行上述代碼文件,收集其運行結(jié)果,并返回給客戶端。在客戶端編寫代碼,生成代碼文件,即使客戶端不具備EDA仿真工具,客戶端可將所述代碼文件上傳至服務(wù)器端,由服務(wù)器端的運行環(huán)境程序代為運行,服務(wù)器會將代碼文件的運行結(jié)果返回給客戶端,客戶端接收即可。從而無需在客戶端安裝仿真驗證軟件也可實現(xiàn)數(shù)字集成電路仿真的驗證,大大提高了數(shù)字集成電路仿真工具的利用率。
[0022]另外,在所述將獲取的所述運行結(jié)果返回給所述客戶端的步驟之前,還包含以下步驟:
[0023]對獲取的所述運行結(jié)果進行分析過濾;
[0024]在所述將獲取的所述運行結(jié)果返回給所述客戶端的步驟中,將經(jīng)所述分析過濾后的運行結(jié)果返回給所述客戶端。
[0025]服務(wù)器將運行結(jié)果返回給客戶端前將對運行結(jié)果進行分析過濾,最終將過濾后的運行結(jié)果返回給客戶端,通過分析過濾的過程大大減少了服務(wù)器與客戶端交互的信息量,很大程度上節(jié)約了系統(tǒng)資源。
[0026]另外,對獲取的所述運行結(jié)果進行分析過濾的步驟中,包含以下子步驟:
[0027]對獲取的所述運行結(jié)果進行關(guān)鍵詞檢測,如果檢測到預(yù)先設(shè)定的關(guān)鍵詞,則根據(jù)檢測到的關(guān)鍵詞提取編碼錯誤的原因信息和編碼錯誤的位置信息;
[0028]在將經(jīng)所述分析過濾后的運行結(jié)果返回給所述客戶端的步驟中,將提取的編碼錯誤的原因信息返回給所述客戶端;
[0029]如果未檢測到預(yù)先設(shè)定的關(guān)鍵詞,則在將經(jīng)所述分析過濾后的運行結(jié)果返回給所述客戶端的步驟中,將編譯正確的結(jié)果信息返回給所述客戶端。
[0030]服務(wù)器在對代碼文件的運行結(jié)果分析過濾時,主要采用關(guān)鍵詞檢測的方式,首先設(shè)定關(guān)鍵詞,檢測過程中系統(tǒng)將自動查找是否存在預(yù)先設(shè)定的關(guān)鍵詞。如果系統(tǒng)檢測到預(yù)先設(shè)定的關(guān)鍵詞,則服務(wù)器根據(jù)檢測到的關(guān)鍵詞提取編碼錯誤的原因和編碼錯誤的位置信息,并將提取的編碼錯誤的原因信息返回給客戶端;如果系統(tǒng)未檢測到預(yù)先設(shè)定的關(guān)鍵詞,則服務(wù)器會將編譯正確的結(jié)果信息返回給客戶端。通過關(guān)鍵詞檢測的分析過濾過程,嚴格保證了客戶端返回值的有效性,便于用戶查找錯誤的編碼信息,提高用戶的學(xué)習(xí)效率。
[0031]另外,對于所述的交互式數(shù)字集成電路仿真驗證方法,還包含以下步驟:
[0032]所述客戶端在收到所述運行結(jié)果后,調(diào)取該運行結(jié)果所對應(yīng)的代碼文件;
[0033]所述客戶端根據(jù)所述運行結(jié)果內(nèi)的編碼錯誤的位置信息,對調(diào)取的代碼文件進行錯誤定位;
[0034]所述客戶端在所述代碼文件內(nèi),突出顯示所述編碼錯誤的位置信息所指示的代碼。
[0035]客戶端在接收運行結(jié)果文件后,可調(diào)取運行結(jié)果文件所對應(yīng)的代碼文件。如果代碼文件中存在錯誤,則服務(wù)器返回的運行結(jié)果文件中存在編碼錯誤的原因信息和位置信息,客戶端可根據(jù)上述編碼錯誤的位置信息,對調(diào)取的代碼文件進行編碼錯誤的定位。同時,客戶端通過上述編碼錯誤的位置信息,將代碼文件中存在錯誤的代碼突出顯示出來,從而使得客戶端用戶無需自行查找錯誤的代碼信息,可直接對客戶端突顯出來的錯誤代碼進行修改,進一步提高了用戶查找錯誤代碼信息的效率。
[0036]另外,在所述將生成的代碼文件上傳至服務(wù)器端的步驟之前,還包含以下步驟:
[0037]所述客戶端對編寫的代碼進行語法檢測;
[0038]如果檢測到語法錯誤,則在本地的人機交互界面進行提示。
[0039]客戶端在上傳生成的代碼文件之前,將對代碼文件進行語法的檢測。如果檢測到代碼文件的語法存在錯誤,則會在客戶端的人機交互界面上進行提示。通過上述的語法檢測,可以避免代碼文件中存在基本的語法錯誤,大大減少客戶端與服務(wù)器的交互量,在一定程度上節(jié)約了資源。
[0040]另外,在所述服務(wù)器端將獲取的所述運行結(jié)果返回給所述客戶端的步驟之后,還包含:
[0041]所述服務(wù)器端保存用于表征各客戶端用戶學(xué)習(xí)情況的向量;
[0042]根據(jù)保存的所述向量,利用余弦相似性獲取學(xué)習(xí)情況相近的客戶端用戶。
[0043]服務(wù)器將代碼文件的運行結(jié)果返回給客戶端后,將保存該用戶學(xué)習(xí)情況的向量,各客戶端的用戶可以輕松查看到其他用戶的學(xué)習(xí)情況。利用余弦相似性,各客戶端用戶還可根據(jù)服務(wù)器上保存的學(xué)習(xí)情況向量找到與自己學(xué)習(xí)情況相近的客戶端用戶,從而促進各用戶之間的交流,共同提高學(xué)習(xí)質(zhì)量。
【附圖說明】
[0044]圖1是根據(jù)本發(fā)明第一實施方式中數(shù)字集成電路仿真驗證方法的交互式流程圖;
[0045]圖2是根據(jù)本發(fā)明第二實施方式中數(shù)字集成電路仿真驗證方法的交互式流程圖;
[0046]圖3是根據(jù)本發(fā)明第三實施方式中余弦相似性原理圖;
[0047]圖4是根據(jù)本發(fā)明第四實施方式中交互式數(shù)字集成電路仿真驗證系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0048]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的各實施方式進行詳細的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術(shù)細節(jié)。但是,即使沒有這些技術(shù)細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權(quán)利要求所要求保護的技術(shù)方案。
[0049]本發(fā)明的第一實施方式涉及一種交互式數(shù)字集成電路仿真驗證方法。該方法中包含一個服務(wù)器和至少一個客戶端,具體流程如圖1所示。
[0050]在步驟101中,客戶端接收用戶編寫的代碼。具體地說,在客戶端的瀏覽器網(wǎng)頁上設(shè)有各類語言代碼編寫環(huán)境的按鈕,客戶端用戶可點擊相應(yīng)的語言代碼編寫環(huán)境的按鈕選擇相應(yīng)的代碼編寫環(huán)境,如點擊“HDL”按鈕,則在網(wǎng)頁上生成HDL語言代碼編寫環(huán)境,用戶可自行編寫對應(yīng)的語言代碼。
[0051]接著,在步驟102中,客戶端根據(jù)用戶編寫好的代碼生成對應(yīng)的代碼文件。現(xiàn)在常用的HDL語言是VHDL (超高速集成電路硬件描述語言,Very-High-Speed IntegratedCircuit Hardware Descript1n Language)和 Verilog HDL語言??蛻舳藢⑺鲈创a保存生成代碼文件,通常將VHDL源代碼保存為.vhd文件,Verilog源代碼保存為.v文件,供后續(xù)服務(wù)器進行識別。
[0052]接著,進入步驟103,客戶端將生成的代碼文件上傳至服務(wù)器端。具體地說,在代碼文件生成后,客戶端將對代碼文件進行處理,如打包等,隨后將提交的代碼文件上傳到服務(wù)器端,如客戶端將根據(jù)源代碼生成的代碼文件通過HTTP協(xié)議上傳至服務(wù)器端。
[0053]接著,在步驟104中,服務(wù)器檢測到代碼文件。具體地說,服務(wù)器端設(shè)有一個監(jiān)控程序,該監(jiān)控程序可以檢測到客戶端提交的代碼文件。在服務(wù)器檢測到客戶端傳來的代碼文件后,系統(tǒng)將自動執(zhí)行步驟105。
[0054]在步驟105中,服務(wù)器調(diào)用運行環(huán)境程序運行代碼文件,即調(diào)用如HDL編譯和仿真的工具運行代碼文件。具體地說,服務(wù)器端在通過監(jiān)控程序接收到代碼文件后,將代碼文件導(dǎo)入到HDL語言編譯和仿真工具中,運行該代碼文件。比如說,HDL語言編譯和仿真工具以Quartus II為例,如果所述代碼只需要檢驗邏輯功能是否正常,那么仿真類型是功能仿真,Quartus II只需要進行分析綜合和功能仿真兩個步驟。如果還需驗證器件配置后的時序關(guān)系是否正確,那么仿真類型是時序仿真。
[0055]在步驟106中,服務(wù)器端獲取代碼文件的運行結(jié)果。具體地說,服務(wù)器端在完成代碼文件的運行后,將通過運行環(huán)境程序自動獲取代碼文件的運行結(jié)果文件,并將運行結(jié)果文件進行保存。
[0056]接著,在步驟107中,服務(wù)器端對獲取的運行結(jié)果進行分析過濾。具體地說,月艮務(wù)器端對獲取的運行結(jié)果進行關(guān)鍵詞檢測,如果檢測到預(yù)先設(shè)定的關(guān)鍵詞,則根據(jù)檢測到的關(guān)鍵詞提取編碼錯誤的原因信息和編碼錯誤的位置信息。比如說,假設(shè)預(yù)先設(shè)定關(guān)鍵詞“Error”,服務(wù)器設(shè)有的過濾程序會在過濾過程中查找“Error”,找到“Error”后將驗證“Error”后面的數(shù)字是否為“O”。如“Error”后面的數(shù)字為“0”,則表示代碼文件無錯誤,此時服務(wù)器將正確的運行結(jié)果文件進行重新保存dn“Err0r”后面的數(shù)字不為“0”,則繼續(xù)掃描其后面的帶有類似“Line+數(shù)字”的文字,作為待提取的編碼錯誤的原因信息和編碼錯誤的位置信息。提取后的信息作為過濾后的運行結(jié)果。
[0057]在步驟108中,服務(wù)器端將經(jīng)分析過濾后的運行結(jié)果返回給客戶端。具體地說,如果未檢測到預(yù)先設(shè)定的關(guān)鍵詞或設(shè)定的關(guān)鍵詞后的數(shù)字為0,則在本步驟中,直接將編譯正確的結(jié)果信息返回給客戶端。如果檢測到預(yù)先設(shè)定的關(guān)鍵詞且設(shè)定的關(guān)鍵詞后的數(shù)字不為0,則將提取的編碼錯誤的原因信息和編碼錯誤的位置信息返回給客戶端。
[0058]如上所述,在分析過濾的過程中,主要采用關(guān)鍵詞檢測的方式,如果沒有檢測到預(yù)先設(shè)定的關(guān)鍵詞,則返回運行的正確結(jié)果;如果檢測到預(yù)先設(shè)定的關(guān)鍵詞,則根據(jù)檢測到的關(guān)鍵詞提取編碼錯誤的原因信息和編碼錯誤的位置信息,并將編碼錯誤的原因信息和編碼錯誤的位置信息一起打包返回給客戶端。
[0059]由于在服務(wù)器端的數(shù)據(jù)庫里,存有各種代碼錯誤的原因和類型,且錯誤類型和原因相對應(yīng),所以服務(wù)器端可以將檢測出的錯誤代碼和數(shù)據(jù)庫里的錯誤代碼進行對比,判斷是何種錯誤類別和錯誤原因。然后在將運行結(jié)果返回給所述客戶端的步驟中,根據(jù)客戶端上傳的打包文件中的地址信息,將提取的編碼錯誤的原因信息、類別、和位置信息發(fā)送給客戶端。
[0060]接著,在步驟109中,客戶端在收到運行結(jié)果后,調(diào)取該運行結(jié)果所對應(yīng)的代碼文件,并根據(jù)運行結(jié)果內(nèi)的編碼錯誤的位置信息,對調(diào)取的代碼文件進行錯誤定位。在具體實施時,還可以在代碼文件內(nèi),突出顯示編碼錯誤的位置信息所指示的代碼。
[0061]比如說,客戶端接收到返回的運行結(jié)果文件之后,瀏覽器網(wǎng)頁上的“查詢仿真結(jié)果”按鈕被激活,用戶可自行點擊該按鈕查詢相關(guān)代碼文件的運行結(jié)果。當“查詢仿真結(jié)果”按鈕被單擊時,客戶端將自動調(diào)取該運行結(jié)果所對應(yīng)的代碼文件。此時,服務(wù)器端返回的運行結(jié)果將顯示在瀏覽器的網(wǎng)頁上。如果服務(wù)器返回了正確的運行結(jié)果,則將正確的運行結(jié)果顯示在網(wǎng)頁上,供客戶端用戶查看。如果服務(wù)器返回的運行結(jié)果文件中存在編碼錯誤,則客戶端將根據(jù)返回的運行結(jié)果文件中編碼錯誤的位置信息,對調(diào)取的代碼文件進行錯誤定位,并突出顯示錯誤的代碼,此時,網(wǎng)頁上將顯示返回的代碼,并直接跳轉(zhuǎn)到代碼存在錯誤的位置,錯誤代碼將被標紅或者高亮顯示,且注明了存在錯誤的原因信息,方便用戶修改。
[0062]此外,在本發(fā)明的具體實施中,客戶端瀏覽器頁面上還設(shè)有其他的學(xué)習(xí)方式,如在線閱讀和在線觀看教學(xué)視頻等,各用戶可分別點擊網(wǎng)頁上相應(yīng)的按鈕,選擇自己喜歡的方式進行學(xué)習(xí),提高學(xué)習(xí)樂趣。并且,發(fā)明的實施方式采用批量處理,無需人工操作,實現(xiàn)了智能的在線交互式數(shù)字集成電路的仿真驗證。
[0063]本發(fā)明的第二實施方式涉及一種交互式數(shù)字集成電路仿真驗證方法。第二實施方式在第一實施方式的基礎(chǔ)上做了進一步改進,主要改進之處在于:在將生成的代碼文件上傳至服務(wù)器端的步驟之前,還包含以下步驟:
[0064]所述客戶端對編寫的代碼進行語法檢測;
[0065]如果檢測到語法錯誤,則在本地的人機交互界面進行提示。
[0066]具體流程如圖2所示,其中步驟201與步驟101相同,步驟203-210與步驟102-109全完相同,此處不再贅述。步驟202中,客戶端設(shè)有語法檢測程序,當客戶端用戶完成代碼編寫,點擊“提交”按鈕之后,客戶端語法檢測程序會對生成的代碼文件進行語法檢測,如果未檢測到語法錯誤,則進入步驟203,根據(jù)本地編寫的代碼生成代碼文件。如果檢測到語法錯誤,則在本地的人機交互界面進行相關(guān)語法錯誤信息的提示。
[0067]在具體實施時,客戶端的檢測程序也可以做實時的語法檢測,即在用戶編寫代碼的同時,客戶端檢測程序?qū)嵤τ脩羲帉懙拇a的準確性進行檢測。當客戶端用戶完成一句代碼的編寫后,如代碼以“;”結(jié)尾,客戶端檢測程序?qū)崟r查找“;”,并對用戶所完成的代碼逐句進行檢測,若本句代碼不存在語法錯誤,則系統(tǒng)程序?qū)⒌却脩衾^續(xù)編寫下一句代碼,若本句代碼存在語法錯誤,則瀏覽器界面直接提示錯誤信息,客戶端用戶可以更直接地進行代碼的修改。
[0068]此外,本領(lǐng)域技術(shù)人員可以理解,客戶端語法檢測程序也可以在客戶端用戶點擊“提交”按鈕后,代碼文件生成前執(zhí)行,客戶端對全部的代碼進行語法的檢測之后再生成代碼文件。若客戶端檢測到所編寫的代碼無語法錯誤,則直接生成代碼文件,若檢測到所編寫的代碼存在語法錯誤,則不直接生成代碼文件,而是在人機交互界面上顯示出所有存在語法錯誤的語句信息,等待客戶端用戶修改。
[0069]本發(fā)明的第三實施方式設(shè)計一種交互式數(shù)字集成電路仿真驗證方法。第三實施方式是在第二實施方式的基礎(chǔ)上做了進一步的改進,主要改進之處在于:
[0070]在所述服務(wù)器端將獲取的所述運行結(jié)果返回給所述客戶端的步驟之后,還包含:
[0071]所述服務(wù)器端保存用于表征各客戶端用戶學(xué)習(xí)情況的向量;
[0072]根據(jù)保存的所述向量,利用余弦相似性獲取學(xué)習(xí)情況相近的客戶端用戶。
[0073]客戶端用戶在學(xué)習(xí)完一定課程之后,客戶端系統(tǒng)將自動保存用戶的學(xué)習(xí)軌跡,并根據(jù)用戶的學(xué)習(xí)軌跡為用戶推薦可能感興趣的課程。具體實施時,可將客戶端用戶的學(xué)習(xí)情況保存為一個向量(方向,數(shù)值),如將向量中的方向元素記為課程名,將向量中的數(shù)值元素記為分值。系統(tǒng)可以將不同學(xué)習(xí)者的學(xué)習(xí)情況分別記為一個向量,從而通過余弦相似性來尋找學(xué)習(xí)情況相似的學(xué)習(xí)者,如圖3所示。其中,A點表示用戶a的學(xué)習(xí)情況,B點表示用戶b的學(xué)習(xí)情況。不難發(fā)現(xiàn),如果cos Θ值越大,則表示用戶a與用戶b的差異度越小,即可以根據(jù)A點與B點的余弦值判斷出用戶a與用戶b的學(xué)習(xí)情況的近似度。具體地說,用戶a可直接在網(wǎng)頁上點擊“查找相似學(xué)員”的按鈕,查找到與自己學(xué)習(xí)情況相似的其他用戶b,從而用戶a還可查看到用戶b所選修的課程,以及對該課程的評價。通過在服務(wù)器端保存用戶的學(xué)習(xí)情況,有效的提高了用戶的學(xué)習(xí)效果,使得用戶很容易查找其他用戶的學(xué)習(xí)進度,促進共同進步。
[0074]上面各種方法的步驟劃分,只是為了描述清楚,實現(xiàn)時可以合并為一個步驟或者對某些步驟進行拆分,分解為多個步驟,只要包含相同的邏輯關(guān)系,都在本專利的保護范圍內(nèi);對算法中或者流程中添加無關(guān)緊要的修改或者引入無關(guān)緊要的設(shè)計,但不改變其算法和流程的核心設(shè)計都在該專利的保護范圍內(nèi)。
[0075]本發(fā)明第四實施方式涉及一種交互式數(shù)字集成電路仿真驗證系統(tǒng),如圖4所示,其中包含:一個服務(wù)器41和至少一個客戶端42。其中,服務(wù)器41又包含接:
[0076]接收單元,用于接收客戶端上傳的代碼文件;
[0077]運行單元,用于在所述接收單元收到所述代碼文件后,調(diào)用運行環(huán)境程序運行所述代碼文件;
[0078]結(jié)果獲取單元,用于獲取所述代碼文件的運行結(jié)果;
[0079]返回單元,用于將所述結(jié)果獲取單元獲取的所述運行結(jié)果返回給所述客戶端。
[0080]客戶端42又包含:
[0081]生成模塊,用于將客戶端用戶在本地編寫的代碼,生成代碼文件;
[0082]上傳模塊,用于將所述生成模塊生成的代碼文件上傳至服務(wù)器端;
[0083]結(jié)果接收模塊,用于接收來自所述服務(wù)器端的所述代碼文件的運行結(jié)果。
[0084]服務(wù)器41用于交互式數(shù)字集成電路仿真驗證時,接收客戶端42上傳模塊上傳的代碼文件,在服務(wù)器41的接受單元檢測到代碼文件時,服務(wù)器自動調(diào)用運行單元中的模擬仿真工具,將代碼文件導(dǎo)入仿真環(huán)境進行仿真處理,運行結(jié)束后結(jié)果獲取單元將自動收集運行結(jié)果,并由返回單元將運行結(jié)果過濾后打包返回給客戶端42,客戶端42的結(jié)果接受模塊接收運行結(jié)果,并在客戶端瀏覽器網(wǎng)頁上將運行結(jié)果顯示出來,供用戶查看和修改。
[0085]具體實施時,客戶端42的上傳模塊上傳代碼文件前,要進行語法檢測,以保證上傳給服務(wù)器41的代碼文件的準確性,以免浪費資源。
[0086]此外,在本實施方式中,服務(wù)器41可與一個客戶端42進行交互作業(yè),同時,也可與多個客戶端共同交互,客戶端42等不僅可以代表學(xué)員用戶,還可以代表教師用戶。學(xué)員用戶可據(jù)上述方式進行學(xué)習(xí),教師用戶可在瀏覽器界面上點擊“查看學(xué)員情況”按鈕,客戶端將調(diào)取保存于服務(wù)器端的學(xué)員資料,查看各學(xué)員用戶的學(xué)習(xí)進度和學(xué)習(xí)質(zhì)量。從而實現(xiàn)了多對多的在線交互式學(xué)習(xí),提高了學(xué)習(xí)效率。
[0087]不難發(fā)現(xiàn),本實施方式為與第一實施方式相對應(yīng)的系統(tǒng)實施例,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關(guān)技術(shù)細節(jié)在本實施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實施方式中提到的相關(guān)技術(shù)細節(jié)也可應(yīng)用在第一實施方式中。
[0088]值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應(yīng)用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現(xiàn)。此外,為了突出本發(fā)明的創(chuàng)新部分,本實施方式中并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單
J L ο
[0089]本領(lǐng)域的普通技術(shù)人員可以理解,上述各實施方式是實現(xiàn)本發(fā)明的具體實施例,而在實際應(yīng)用中,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
【主權(quán)項】
1.一種交互式數(shù)字集成電路仿真驗證方法,其特征在于,包含以下步驟: 客戶端根據(jù)在本地編寫的代碼生成代碼文件,并將生成的代碼文件上傳至服務(wù)器端; 所述服務(wù)器端收到所述代碼文件后,調(diào)用運行環(huán)境程序運行所述代碼文件; 所述服務(wù)器端獲取所述代碼文件的運行結(jié)果; 所述服務(wù)器端將獲取的所述運行結(jié)果返回給所述客戶端。2.根據(jù)權(quán)利要求1所述的交互式數(shù)字集成電路仿真驗證方法,其特征在于,在所述將獲取的所述運行結(jié)果返回給所述客戶端的步驟之前,還包含以下步驟: 對獲取的所述運行結(jié)果進行分析過濾; 在所述將獲取的所述運行結(jié)果返回給所述客戶端的步驟中,將經(jīng)所述分析過濾后的運行結(jié)果返回給所述客戶端。3.根據(jù)權(quán)利要求2所述的交互式數(shù)字集成電路仿真驗證方法,其特征在于,對獲取的所述運行結(jié)果進行分析過濾的步驟中,包含以下子步驟: 對獲取的所述運行結(jié)果進行關(guān)鍵詞檢測,如果檢測到預(yù)先設(shè)定的關(guān)鍵詞,則根據(jù)檢測到的關(guān)鍵詞提取編碼錯誤的原因信息和編碼錯誤的位置信息; 在將經(jīng)所述分析過濾后的運行結(jié)果返回給所述客戶端的步驟中,將提取的編碼錯誤的原因信息和編碼錯誤的位置信息返回給所述客戶端; 如果未檢測到預(yù)先設(shè)定的關(guān)鍵詞,則在將經(jīng)所述分析過濾后的運行結(jié)果返回給所述客戶端的步驟中,將編譯正確的結(jié)果信息返回給所述客戶端。4.根據(jù)權(quán)利要求3所述的交互式數(shù)字集成電路仿真驗證方法,其特征在于,還包含以下步驟: 所述客戶端在收到所述運行結(jié)果后,調(diào)取該運行結(jié)果所對應(yīng)的代碼文件; 所述客戶端根據(jù)所述運行結(jié)果內(nèi)的編碼錯誤的位置信息,對調(diào)取的代碼文件進行錯誤定位; 所述客戶端在所述代碼文件內(nèi),突出顯示所述編碼錯誤的位置信息所指示的代碼。5.根據(jù)權(quán)利要求1所述的交互式數(shù)字集成電路仿真驗證方法,其特征在于,在所述將生成的代碼文件上傳至服務(wù)器端的步驟之前,還包含以下步驟: 所述客戶端對編寫的代碼進行語法檢測; 如果檢測到語法錯誤,則在本地的人機交互界面進行提示。6.根據(jù)權(quán)利要求1至5中任一項所述的交互式數(shù)字集成電路仿真驗證方法,其特征在于,在所述服務(wù)器端將獲取的所述運行結(jié)果返回給所述客戶端的步驟之后,還包含: 所述服務(wù)器端保存用于表征各客戶端用戶學(xué)習(xí)情況的向量; 根據(jù)保存的所述向量,利用余弦相似性獲取學(xué)習(xí)情況相近的客戶端用戶。7.—種交互式數(shù)字集成電路仿真驗證的服務(wù)器,其特征在于,包含: 接收單元,用于接收客戶端上傳的代碼文件; 運行單元,用于在所述接收單元收到所述代碼文件后,調(diào)用運行環(huán)境程序運行所述代碼文件; 結(jié)果獲取單元,用于獲取所述代碼文件的運行結(jié)果; 返回單元,用于將所述結(jié)果獲取單元獲取的所述運行結(jié)果返回給所述客戶端。8.根據(jù)權(quán)利要求7所述的交互式數(shù)字集成電路仿真驗證的服務(wù)器,其特征在于,所述服務(wù)器還包含: 分析過濾單元,用于對所述結(jié)果獲取單元獲取的運行結(jié)果進行分析過濾; 所述返回單元將經(jīng)所述分析過濾單元分析過濾后的運行結(jié)果返回給所述客戶端。9.一種交互式數(shù)字集成電路仿真驗證的客戶端,其特征在于,包含: 生成模塊,用于將客戶端用戶在本地編寫的代碼,生成代碼文件; 上傳模塊,用于將所述生成模塊生成的代碼文件上傳至服務(wù)器端; 結(jié)果接收模塊,用于接收來自所述服務(wù)器端的所述代碼文件的運行結(jié)果。10.一種交互式數(shù)字集成電路仿真驗證系統(tǒng),其特征在于,包含:根據(jù)權(quán)利要求7或8所述的服務(wù)器,和至少一個根據(jù)權(quán)利要求9所述的客戶端。
【文檔編號】G06F17/50GK106021631SQ201510651323
【公開日】2016年10月12日
【申請日】2015年10月10日
【發(fā)明人】李葉, 武星
【申請人】上海圖元軟件技術(shù)有限公司