两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

時(shí)序電路的拓?fù)浣Y(jié)構(gòu)分析方法和狀態(tài)機(jī)模型提取方法

文檔序號(hào):6340059閱讀:291來(lái)源:國(guó)知局
專利名稱:時(shí)序電路的拓?fù)浣Y(jié)構(gòu)分析方法和狀態(tài)機(jī)模型提取方法
技術(shù)領(lǐng)域
本發(fā)明涉及SystemC形式化驗(yàn)證技術(shù)領(lǐng)域,特別涉及一種基于SystemC的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法和一種基于SystemC的時(shí)序電路狀態(tài)機(jī)模型提取方法。
背景技術(shù)
目前芯片設(shè)計(jì)業(yè)正面臨著一系列的挑戰(zhàn),隨著半導(dǎo)體技術(shù)的迅猛發(fā)展,SoC( System-on-Chip,片上系統(tǒng)或系統(tǒng)芯片)已經(jīng)成為當(dāng)今集成電路設(shè)計(jì)的發(fā)展方向,SoC性能越來(lái)越強(qiáng),規(guī)模越來(lái)越大。SoC芯片的規(guī)模一般遠(yuǎn)大于普通的ASIC,同時(shí)由于深亞微米工藝帶來(lái)的設(shè)計(jì)困難等,使得SoC設(shè)計(jì)的復(fù)雜度大大提高。在SoC設(shè)計(jì)中,仿真與驗(yàn)證是SoC 設(shè)計(jì)流程中最復(fù)雜、最耗時(shí)的環(huán)節(jié),約占整個(gè)芯片開發(fā)周期的50% 8096,采用先進(jìn)的設(shè)計(jì)與仿真驗(yàn)證方法成為SoC設(shè)計(jì)成功的關(guān)鍵。SoC技術(shù)的發(fā)展趨勢(shì)是基于SoC開發(fā)平臺(tái),基于平臺(tái)的設(shè)計(jì)是一種可以達(dá)到最大程度系統(tǒng)重用的面向集成的設(shè)計(jì)方法,分享IP核開發(fā)與系統(tǒng)集成成果,不斷重整價(jià)值鏈,在關(guān)注面積、延遲、功耗的基礎(chǔ)上,向成品率、可靠性、 EMI噪聲、成本、易用性等轉(zhuǎn)移,使系統(tǒng)級(jí)集成能力快速發(fā)展。在系統(tǒng)芯片的各個(gè)設(shè)計(jì)中,像系統(tǒng)定義、軟硬件劃分、設(shè)計(jì)實(shí)現(xiàn)等,集成電路設(shè)計(jì)界一直在考慮如何滿足SoC的設(shè)計(jì)要求,一直在尋找一種能同時(shí)實(shí)現(xiàn)較高層次的軟件和硬件描述的系統(tǒng)級(jí)設(shè)計(jì)語(yǔ)言。隨著ASIC設(shè)計(jì)規(guī)模的增大,其前端驗(yàn)證的難度、復(fù)雜度將以幾何級(jí)數(shù)的速度增加。當(dāng)今ASIC前端驗(yàn)證已經(jīng)成為整個(gè)ASIC設(shè)計(jì)流程中耗時(shí)長(zhǎng)、難度大卻又十分關(guān)鍵的階段。因此,在前端驗(yàn)證階段,采用有效、實(shí)用的驗(yàn)證方法具有重要意義。常用的功能驗(yàn)證采用的方式是向被測(cè)單元施加一組測(cè)試向量激勵(lì),將其輸出向量與標(biāo)準(zhǔn)的參考向量作比較,從而判斷模塊功能的正確性。靜態(tài)功能驗(yàn)證中,沒(méi)有向設(shè)計(jì)施加輸入激勵(lì)信號(hào)。而是將設(shè)計(jì)映射至一個(gè)采用二叉決策圖或其他數(shù)學(xué)表達(dá)式來(lái)說(shuō)明其功能的圖形結(jié)構(gòu)上。利用這種圖形結(jié)構(gòu)來(lái)證實(shí)或反駁屬性將能夠驗(yàn)證這些數(shù)學(xué)表達(dá)式?;赟ystemC的建模與驗(yàn)證方法主要基于傳統(tǒng)的動(dòng)態(tài)仿真技術(shù),基于SystemC的形式驗(yàn)證技術(shù)還不是很成熟。將形式驗(yàn)證技術(shù)應(yīng)用于SystemC設(shè)計(jì)中將是一個(gè)很大的挑戰(zhàn),因?yàn)镾ystemC是一種面向?qū)ο蟮脑O(shè)計(jì)語(yǔ)言,還因?yàn)镾ystemC復(fù)雜的基于事件驅(qū)動(dòng)的仿真語(yǔ)義。傳統(tǒng)的驗(yàn)證方法大都采用動(dòng)態(tài)仿真的方法,動(dòng)態(tài)仿真的一個(gè)主要的缺點(diǎn)是,在一個(gè)限時(shí)仿真行程當(dāng)中,只能對(duì)芯片的典型工作特性進(jìn)行驗(yàn)證。造成這種情況的主要原因在于采用的是定向測(cè)試法。當(dāng)采用動(dòng)態(tài)驗(yàn)證時(shí),設(shè)計(jì)者使用覆蓋率來(lái)表示功能空間的估計(jì)值, 如行覆蓋率、表達(dá)式覆蓋率、FSM覆蓋率、變換覆蓋率和通路覆蓋率等。為了能對(duì)SystemC 描述的電路進(jìn)行形式化的靜態(tài)驗(yàn)證,有必要對(duì)SystemC電路信息進(jìn)行提取。模型檢驗(yàn)使用有限狀態(tài)機(jī)描述電路,通過(guò)狀態(tài)機(jī)的遍歷驗(yàn)證電路是否滿足功能。狀態(tài)機(jī)系統(tǒng)是作為一個(gè)具有標(biāo)記的狀態(tài)轉(zhuǎn)移圖給出的,一個(gè)狀態(tài)標(biāo)記表示了在那個(gè)狀態(tài)的一個(gè)原子命題集合的取值。狀態(tài)轉(zhuǎn)移圖定義了系統(tǒng)模型。如何有效地獲取狀態(tài)機(jī)系統(tǒng)成為對(duì)SystemC描述的門級(jí)時(shí)序電路進(jìn)行形式化驗(yàn)證的首要解決的問(wèn)題之一。
因此,現(xiàn)有技術(shù)的不足就需要對(duì)SystemC描述的門級(jí)時(shí)序電路進(jìn)行形式化分析以及由此進(jìn)行時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析。

發(fā)明內(nèi)容
本發(fā)明目的在于對(duì)SystemC描述的門級(jí)時(shí)序電路進(jìn)行形式化分析,從而提供一種適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,以及由此還提供一種適用于SystemC 的門級(jí)時(shí)序電路狀態(tài)機(jī)模型提取方法。為了達(dá)到上述目的,本發(fā)明采取技術(shù)方案如下
根據(jù)本發(fā)明提供的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,所述時(shí)序電路包括由SystemC描述的能存儲(chǔ)電路狀態(tài)的邏輯器件和基本門器件,所述時(shí)序電路拓?fù)浣Y(jié)構(gòu)通過(guò)電路信息來(lái)體現(xiàn),在完成模塊實(shí)例化和端口信息綁定操作后執(zhí)行SC_M0DULE類內(nèi)的成員函數(shù)end_of_elaboration(),其中默認(rèn)的成員函數(shù)end_of_elaboration是空的,通過(guò)修改成員函數(shù)end_0f_elab0rati0n和添加獲取電路信息的代碼來(lái)提取各個(gè)模塊實(shí)例化時(shí)的電路信息。輸入電路是基于SystemC描述的、由觸發(fā)器和基本門(與,或,非,異或等)組成的時(shí)序電路,其中觸發(fā)器和基本門已由SystemC描述,被測(cè)電路由SystemC描述的子模塊組成。電路信息體現(xiàn)電路的拓?fù)浣Y(jié)構(gòu),包括觸發(fā)器個(gè)數(shù)以及它們的端口信息、門器件類型以及它們的端口信息、初級(jí)輸入端個(gè)數(shù)以及每條導(dǎo)線所連接的邏輯器件信息。因?yàn)橛|發(fā)器和基本門等子模塊都由SystemC描述,因此被測(cè)電路是一個(gè)包含觸發(fā)器和基本門子模塊實(shí)例化信息的頂層模塊。由于SC_M0DULE類內(nèi)有個(gè)成員函數(shù)end_0f_ elaboration (),該函數(shù)在完成模塊實(shí)例化(elaboration)和端口信息綁定操作后執(zhí)行,標(biāo)志完成信號(hào)的是仿真啟動(dòng)信號(hào)(sc_Start())。默認(rèn)的end_0f_elab0rati0n函數(shù)是空的, 通過(guò)修改encLof^elaboration函數(shù),添加獲取電路信息的代碼可提取各個(gè)模塊實(shí)例化時(shí)的模塊信息和端口信息。這里,可以通過(guò)數(shù)據(jù)結(jié)構(gòu)來(lái)構(gòu)建以端口為節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)圖。在 SystemC語(yǔ)言中,由SystemC描述的子模塊都是派生至類scjnodule的類,端口 SC_in/SC_ inout/sc_out是sc_interface。SystemC描述的子模塊是通過(guò)例化若干個(gè)信號(hào)連接起來(lái)的,每個(gè)信號(hào)在例化時(shí)會(huì)賦予信號(hào)線的名稱,比如sC_signal<b00l> a("wire_a");并且每個(gè)子模塊例化時(shí)也會(huì)賦予一個(gè)實(shí)例名,比如與門模塊的例化AndG2 dutl ( "dul");關(guān)鍵的步驟就是找出每個(gè)導(dǎo)線名稱與哪些子模塊名稱有連接關(guān)系,并用map/vector等數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)起來(lái)。由已獲取的端口信息計(jì)算初級(jí)輸入端的個(gè)數(shù)。初級(jí)輸入端口是指只作為邏輯器件輸入的端口?;谏鲜鰰r(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法獲得的時(shí)序電路拓?fù)湫畔?,本發(fā)明進(jìn)一步提供了一種適用于SystemC的門級(jí)時(shí)序電路狀態(tài)機(jī)模型提取方法,其中(1)通過(guò)修改 SystemC模塊內(nèi)嵌函數(shù)end_0f_elab0rati0n和添加必要的數(shù)據(jù)結(jié)構(gòu)保存時(shí)序電路信息,按照上述的方法提取電路拓?fù)浣Y(jié)構(gòu)信息,其中,所述電路信息包括觸發(fā)器個(gè)數(shù)以及它們的端口信息、門器件類型以及它們的端口信息、初級(jí)輸入端個(gè)數(shù)以及每條導(dǎo)線所連接的邏輯器件信息;( 構(gòu)建電路的布爾函數(shù),完成觸發(fā)器或其它有存儲(chǔ)電路狀態(tài)的邏輯器件的狀態(tài)轉(zhuǎn)換映射;C3)使用二叉決策圖表示狀態(tài)轉(zhuǎn)移的布爾函數(shù),通過(guò)軟件描述步驟O)中的形式化分析結(jié)果;(4)初始化時(shí)序電路,包括初始化觸發(fā)器或其它有存儲(chǔ)電路狀態(tài)的邏輯器
5件;( 使用約束求解器求解狀態(tài)轉(zhuǎn)移的布爾函數(shù),得出時(shí)序電路可能存在的所有狀態(tài)集合和狀態(tài)轉(zhuǎn)換。示例地,適用二叉決策圖(BDD,binary decision diagram)來(lái)表示時(shí)序電路狀態(tài)轉(zhuǎn)移函數(shù),可以包含步驟如下
(1)在分配bdd變量前進(jìn)行初始化,設(shè)置申請(qǐng)bdd變量的個(gè)數(shù),個(gè)數(shù)為觸發(fā)器個(gè)數(shù)*2+ 初級(jí)輸入端(不作為觸發(fā)器端口的初級(jí)輸入端)。初始化wires用于存儲(chǔ)導(dǎo)線實(shí)例化名字和對(duì)應(yīng)bdd表示,devices存儲(chǔ)已知的邏輯門信息,初始化bdd變量T為bddtrue,表示狀態(tài)轉(zhuǎn)移函數(shù)的bdd表示。(2)先給觸發(fā)器的輸出和輸入端口分配bdd變量,為了方便后面計(jì)算狀態(tài)值,分配bdd變量時(shí),注意輸入和輸出分配bdd的順序要保持一致。(3)然后給初級(jí)輸入端分配bdd變量,有些電路觸發(fā)器輸入端也作為初級(jí)輸入端,這步只給那些不作為觸發(fā)器端口的初級(jí)輸入端分配bdd,以避免重復(fù)。(4)遍歷電路中所有的門器件,計(jì)算每個(gè)門器件輸出的bdd表示。(5)最后對(duì)每個(gè)觸發(fā)器的輸入輸出端口的bdd表示進(jìn)行異或取反操作,并把結(jié)果做與操作就是電路狀態(tài)轉(zhuǎn)移函數(shù)的bdd表示。電路狀態(tài)轉(zhuǎn)移函數(shù)決定了電路狀態(tài)傳輸,它根據(jù)當(dāng)前狀態(tài)和下一個(gè)輸入符號(hào)產(chǎn)生下一狀態(tài)。本發(fā)明具有下列優(yōu)點(diǎn)
1.本發(fā)明基于SystemC仿真內(nèi)核,通過(guò)修改SystemC模塊內(nèi)嵌函數(shù)和二叉決策圖來(lái)描述布爾函數(shù)來(lái)實(shí)現(xiàn)狀態(tài)機(jī)模型提取,能夠很好地對(duì)SystemC時(shí)序電路進(jìn)行形式化分析。2.本發(fā)明不需要給SystemC時(shí)序電路施加任何激勵(lì),完全由軟件算法來(lái)實(shí)現(xiàn),避免了實(shí)現(xiàn)的復(fù)雜性。


圖1、2、3是SystemC描述的時(shí)序電路。圖4是獲取時(shí)序電路狀態(tài)轉(zhuǎn)移函數(shù)二叉決策圖表示的方法步驟。圖5是對(duì)圖2和圖3進(jìn)行狀態(tài)機(jī)模型提取結(jié)果。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述
圖1是一個(gè)含有2個(gè)觸發(fā)器、兩個(gè)或門和一個(gè)三輸入與門組成的時(shí)序門級(jí)電路?,F(xiàn)在按照上面的算法步驟對(duì)該時(shí)序電路構(gòu)造狀態(tài)轉(zhuǎn)移函數(shù)的bdd表示。其中電路信息已在實(shí)例化時(shí)通過(guò)修改encLotelaboration函數(shù)來(lái)獲取,在實(shí)例化時(shí)導(dǎo)線名字均采用圖中的名字, 即al, a2, si, s2, pi, p2, η。其中作為觸發(fā)器端口的端口為pl,si, p2, s2,作為初級(jí)輸入端的端口為al,a2,中間導(dǎo)線有η。根據(jù)以上算法,具體實(shí)現(xiàn)過(guò)程如圖2。作為示例,下面講述如何修改encLotelaboration函數(shù)來(lái)獲取電路端口互連信息
權(quán)利要求
1.一種適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其中所述時(shí)序電路包括由SystemC描述的能存儲(chǔ)電路狀態(tài)的邏輯器件和基本門器件,所述時(shí)序電路拓?fù)浣Y(jié)構(gòu)通過(guò)電路信息來(lái)體現(xiàn),在完成模塊實(shí)例化和端口信息綁定操作后執(zhí)行SC_M0DULE類內(nèi)的成員函數(shù)end_0f_ elaboration (),其中默認(rèn)的成員函數(shù)end_of_e 1 aboration是空的,通過(guò)修改成員函數(shù) end_of_elaboration和添加獲取電路信息的代碼來(lái)提取各個(gè)模塊實(shí)例化時(shí)的電路信息。
2.根據(jù)權(quán)利要求1所述的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其特征在于,所述能存儲(chǔ)電路狀態(tài)的邏輯器件包括觸發(fā)器或鎖存器,所述基本門器件包括與、或、 非、異或門器件。
3.根據(jù)權(quán)利要求2所述的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其特征在于,所述電路信息包括觸發(fā)器個(gè)數(shù)以及它們的端口信息、門器件類型以及它們的端口信息、初級(jí)輸入端個(gè)數(shù)以及每條導(dǎo)線所連接的邏輯器件信息。
4.根據(jù)權(quán)利要求1所述的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其特征在于,被測(cè)的時(shí)序電路由SystemC描述的子模塊組成,所述電路信息包括模塊信息。
5.根據(jù)權(quán)利要求1所述的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其特征在于,用仿真啟動(dòng)信號(hào)scjtartO來(lái)標(biāo)志模塊實(shí)例化和端口信息綁定操作的完成。
6.根據(jù)權(quán)利要求1所述的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其特征在于,由已獲取的端口信息計(jì)算初級(jí)輸入端的個(gè)數(shù),其中所述初級(jí)輸入端口是指只作為邏輯器件輸入的端口。
7.根據(jù)權(quán)利要求1所述的適用于SystemC描述的時(shí)序電路拓?fù)浣Y(jié)構(gòu)分析方法,其特征在于,從軟件角度分析時(shí)序電路的形式化方法。
8.一種適用于SystemC描述的時(shí)序電路狀態(tài)機(jī)模型提取方法,其步驟如下(1)通過(guò)修改SystemC模塊內(nèi)嵌函數(shù)encLof^elaboration和添加必要的數(shù)據(jù)結(jié)構(gòu)保存時(shí)序電路信息,按照權(quán)利要求1所述的方法提取電路拓?fù)浣Y(jié)構(gòu)信息,其中,所述電路信息包括觸發(fā)器個(gè)數(shù)以及它們的端口信息、門器件類型以及它們的端口信息、初級(jí)輸入端個(gè)數(shù)以及每條導(dǎo)線所連接的邏輯器件信息;(2)構(gòu)建電路的布爾函數(shù),完成觸發(fā)器或其它有存儲(chǔ)電路狀態(tài)的邏輯器件的狀態(tài)轉(zhuǎn)換映射;(3)使用二叉決策圖表示狀態(tài)轉(zhuǎn)移的布爾函數(shù),通過(guò)軟件描述步驟O)中的形式化分析結(jié)果;(4)初始化時(shí)序電路,包括初始化觸發(fā)器或其它有存儲(chǔ)電路狀態(tài)的邏輯器件;(5)使用約束求解器求解狀態(tài)轉(zhuǎn)移的布爾函數(shù),得出時(shí)序電路可能存在的所有狀態(tài)集合和狀態(tài)轉(zhuǎn)換。
9.根據(jù)權(quán)利要求8所述的適用于SystemC描述的時(shí)序電路狀態(tài)機(jī)模型提取方法,其特征在于,在所述步驟(2)中,使用二叉決策圖來(lái)描述SystemC電路中的布爾函數(shù)。
10.根據(jù)權(quán)利要求8所述的適用于SystemC描述的時(shí)序電路狀態(tài)機(jī)模型提取方法,其特征在于,在所述步驟(3)中,適用二叉決策圖表示狀態(tài)轉(zhuǎn)移的布爾函數(shù)包含步驟如下(1)在分配bdd變量前進(jìn)行初始化,設(shè)置申請(qǐng)bdd變量的個(gè)數(shù),個(gè)數(shù)為觸發(fā)器個(gè)數(shù)*2+ 初級(jí)輸入端,該初級(jí)輸入端不作為觸發(fā)器端口的初級(jí)輸入端,其中初始化wires用于存儲(chǔ)導(dǎo)線實(shí)例化名字和對(duì)應(yīng)bdd表示,devices存儲(chǔ)已知的邏輯門信息,初始化bdd變量T為 bddtrue,表示狀態(tài)轉(zhuǎn)移函數(shù)的bdd表示;(2)先給觸發(fā)器的輸出和輸入端口分配bdd變量,為了方便后面計(jì)算狀態(tài)值,分配bdd 變量時(shí),輸入和輸出分配bdd的順序保持一致;(3)然后只給那些不作為觸發(fā)器端口的初級(jí)輸入端端口分配bdd變量;(4)遍歷電路中所有的門器件,計(jì)算每個(gè)門器件輸出的bdd表示;(5)最后對(duì)每個(gè)觸發(fā)器的輸入輸出端口的bdd表示進(jìn)行異或取反操作,并把結(jié)果做與操作以得到電路狀態(tài)轉(zhuǎn)移函數(shù)的bdd表示。
11.根據(jù)權(quán)利要求8所述的適用于SystemC描述的時(shí)序電路狀態(tài)機(jī)模型提取方法,其特征在于,在所述步驟(5)中,通過(guò)約束求解器求解的方法來(lái)求解SystemC電路的布爾函數(shù),獲取時(shí)序電路狀態(tài)轉(zhuǎn)移集合。
全文摘要
本發(fā)明涉及時(shí)序電路的拓?fù)浣Y(jié)構(gòu)分析方法和狀態(tài)機(jī)模型提取方法。該方法適用于基于SystemC描述的、由觸發(fā)器和基本門組成的時(shí)序電路,其中觸發(fā)器和基本門已由SystemC描述。電路信息體現(xiàn)電路的拓?fù)浣Y(jié)構(gòu),包括觸發(fā)器個(gè)數(shù)以及它們的端口信息,門器件類型以及它們的端口信息、初級(jí)輸入端個(gè)數(shù)以及每條導(dǎo)線所連接的邏輯器件信息。該方法主要包括提取電路拓?fù)浣Y(jié)構(gòu)信息;構(gòu)建電路的布爾函數(shù);使用二叉決策圖表示狀態(tài)轉(zhuǎn)移的布爾函數(shù);初始化時(shí)序電路;使用約束求解器求解狀態(tài)轉(zhuǎn)移的布爾函數(shù)。本發(fā)明實(shí)現(xiàn)了門級(jí)時(shí)序電路狀態(tài)機(jī)模型提取算法,能夠很好地獲取時(shí)序電路狀態(tài)機(jī)模型,而不需給設(shè)計(jì)施加任何激勵(lì),避免了實(shí)現(xiàn)的復(fù)雜性。
文檔編號(hào)G06F17/50GK102567555SQ20101060722
公開日2012年7月11日 申請(qǐng)日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者王勝 申請(qǐng)人:北京國(guó)睿中數(shù)科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
习水县| 香格里拉县| 延川县| 青浦区| 虞城县| 湘潭县| 安康市| 宁蒗| 大冶市| 金乡县| 壤塘县| 江西省| 石渠县| 白沙| 衡水市| 伊金霍洛旗| 南昌县| 正阳县| 微博| 同心县| 余庆县| 永丰县| 泽州县| 金昌市| 辰溪县| 巴林左旗| 晋州市| 蕉岭县| 平江县| 建平县| 噶尔县| 延川县| 卢氏县| 上蔡县| 白玉县| 恭城| 松阳县| 中宁县| 银川市| 伊宁县| 巴青县|