本發(fā)明的實(shí)施例總體涉及半導(dǎo)體領(lǐng)域,更具體地,涉及半導(dǎo)體芯片設(shè)計(jì)中的功率狀態(tài)覆蓋率度量及其估計(jì)方法。
背景技術(shù):
隨著半導(dǎo)體芯片性能的增強(qiáng),芯片設(shè)計(jì)變得更加復(fù)雜。傳統(tǒng)的寄存器傳輸級(jí)(rtl)設(shè)計(jì)方法對(duì)于需要軟件和硬件高度集成的現(xiàn)代片上系統(tǒng)(soc)設(shè)計(jì)來(lái)說(shuō)是耗時(shí)的。如果在rtl階段檢測(cè)到問(wèn)題,則修改設(shè)計(jì)可能會(huì)太晚。因此,采用電子系統(tǒng)級(jí)(esl)設(shè)計(jì)方法以便于現(xiàn)代系統(tǒng)設(shè)計(jì)。
功率消耗在芯片設(shè)計(jì)中是重要問(wèn)題。對(duì)于esl模型,系統(tǒng)級(jí)設(shè)計(jì)和技術(shù)探索需要估計(jì)功率,因?yàn)閑sl模型包括在esl模型中的每個(gè)知識(shí)產(chǎn)權(quán)(ip)的功率狀態(tài)和關(guān)聯(lián)的功率消耗數(shù)量。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本發(fā)明的一個(gè)方面,提供了一種通過(guò)至少一個(gè)處理器執(zhí)行的用于管理芯片設(shè)計(jì)中的模塊的驗(yàn)證用例的方法,所述方法包括:建立包括所述模塊的多個(gè)塊的電子系統(tǒng)級(jí)(esl)模型;為所述多個(gè)塊的每個(gè)塊限定至少一個(gè)esl功率狀態(tài);為所述esl功率狀態(tài)的每一個(gè)選擇至少一個(gè)驗(yàn)證用例;為所述驗(yàn)證用例的每一個(gè)設(shè)置目標(biāo)覆蓋率值;為所述驗(yàn)證用例的每一個(gè)實(shí)施執(zhí)行寄存器傳輸級(jí)(rtl)模擬;得到所述驗(yàn)證用例的每個(gè)的實(shí)際覆蓋率值;更新所述多個(gè)塊的每個(gè)塊的所述esl功率狀態(tài)和所述驗(yàn)證用例。
根據(jù)本發(fā)明的另一方面,提供了一種通過(guò)至少一個(gè)處理器來(lái)執(zhí)行的用于估計(jì)電子系統(tǒng)級(jí)(esl)模型中塊的功率狀態(tài)覆蓋率的方法,所述方法包括:為所述塊設(shè)置第一值、第二值、第三值和塊覆蓋率值;選擇所述塊的至少一個(gè)驗(yàn)證用例;對(duì)于所述至少一個(gè)驗(yàn)證用例中的每個(gè),(a)設(shè)定目標(biāo)覆蓋率值;(b)執(zhí)行寄存器傳輸級(jí)(rtl)模擬;(c)得到實(shí)際覆蓋率值;(d)確定所述實(shí)際覆蓋率值是否大于或等于所述目標(biāo)覆蓋率值;以及(e)當(dāng)所述實(shí)際覆蓋率值大于或等于所述目標(biāo)覆蓋率值時(shí),更新所述第一值和所述塊覆蓋率值;確定所述塊覆蓋率值是否大于或等于預(yù)定義的塊覆蓋率值;以及當(dāng)所述塊覆蓋率值大于或等于所述預(yù)定義的塊覆蓋率值時(shí),計(jì)算所述塊的所述功率狀態(tài)覆蓋率。
根據(jù)本發(fā)明發(fā)的又一方面,提供了一種通過(guò)至少一個(gè)處理器執(zhí)行的用于估計(jì)電子系統(tǒng)級(jí)(esl)模型的總功率狀態(tài)覆蓋率的方法,所述方法包括:設(shè)置所述塊的第一值、第二值;為所述esl模型中的每個(gè)塊選擇至少一個(gè)驗(yàn)證用例;對(duì)于所述至少一個(gè)驗(yàn)證用例的每一個(gè),(a)設(shè)定目標(biāo)覆蓋率值;(b)執(zhí)行寄存器傳輸級(jí)(rtl)模擬;(c)得到實(shí)際覆蓋率值;以及(d)基于所述實(shí)際覆蓋率值是否小于所述目標(biāo)覆蓋率值來(lái)更新所述第一值和所述第二值;計(jì)算每個(gè)塊的功率狀態(tài)覆蓋率;以及計(jì)算所述esl模型的所述總功率狀態(tài)覆蓋率。
附圖說(shuō)明
結(jié)合附圖和以下描述來(lái)闡述本發(fā)明的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。本發(fā)明的其他特征和優(yōu)勢(shì)將根據(jù)說(shuō)明書(shū)、附圖和權(quán)利要求而變得顯而易見(jiàn)。
圖1是示出根據(jù)實(shí)施例的用于管理芯片中的模塊的驗(yàn)證用例的方法的流程圖。
圖2是示出根據(jù)實(shí)施例的用于功率狀態(tài)覆蓋估計(jì)的系統(tǒng)的框圖。
圖3是示出根據(jù)實(shí)施例的用于宏級(jí)功率狀態(tài)覆蓋率估計(jì)的系統(tǒng)的框圖
圖4是示出根據(jù)實(shí)施例的對(duì)于具體模塊的esl模型和驗(yàn)證用例的示意圖。
圖5是根據(jù)實(shí)施例的功能性驗(yàn)證系統(tǒng)的示意圖。
圖6是示出根據(jù)實(shí)施例的用于估計(jì)esl模型中的塊的功率狀態(tài)覆蓋率的方法的流程圖。
圖7是根據(jù)實(shí)施例的esl模型的初始和更新的驗(yàn)證用例的示圖。
圖8是根據(jù)一些實(shí)施例的用于實(shí)施參考圖1至圖6描述的方法和系統(tǒng)的實(shí)施例的硬件系統(tǒng)的框圖。
具體實(shí)施方式
以下公開(kāi)內(nèi)容提供了許多用于實(shí)現(xiàn)本發(fā)明的不同特征的不同實(shí)施例或?qū)嵗?。以下描述部件和布置的具體實(shí)例以簡(jiǎn)化本發(fā)明。當(dāng)然,這些僅僅是實(shí)例而不旨在限制。此外,本發(fā)明可以在各個(gè)實(shí)例中重復(fù)參考標(biāo)號(hào)和/或字符。該重復(fù)是出于簡(jiǎn)明和清楚的目的,而其本身并未指示所討論的各個(gè)實(shí)施例和/或配置之間的關(guān)系。
對(duì)于電子系統(tǒng)級(jí)(esl)模型,精確的系統(tǒng)級(jí)功率建??赡苄枰耆采wesl模型中所有有效功率狀態(tài)。丟失的功率狀態(tài)可以導(dǎo)致對(duì)功率的低估,而具有大的功能重疊的功率狀態(tài)可以導(dǎo)致對(duì)功率的高估。因此,需要方法來(lái)檢查esl模型是否具有丟失的功率狀態(tài)以及esl模型中限定的功率狀態(tài)是否是有效的功率狀態(tài)并且覆蓋芯片的大部分功能部分。在本公開(kāi)的各個(gè)實(shí)施例中提供了功率狀態(tài)覆蓋率驗(yàn)證和功率消耗估計(jì)的方法。
圖1是示出根據(jù)實(shí)施例的用于管理芯片中的模塊的驗(yàn)證用例的方法100的流程圖。參考圖1,在操作101中,為芯片設(shè)計(jì)中的模塊創(chuàng)建包括多個(gè)塊的esl模型。芯片設(shè)計(jì)包括芯片的各個(gè)模塊的功能性描述。每個(gè)模塊被設(shè)計(jì)為執(zhí)行特定類(lèi)型的功能。一個(gè)或多個(gè)模塊可以被認(rèn)為是引擎(engine)、核心或處理單元。在實(shí)例中,市售的soc包括中央處理單元(cpu)、數(shù)字信號(hào)處理(dsp)核心,圖形處理單元(gpu)、存儲(chǔ)器、加速器、電源模塊、輸入/輸出模塊和其他許多模塊。模塊的一些或全部由一個(gè)或多個(gè)芯片設(shè)計(jì)者設(shè)計(jì)。一些模塊還包括第三方ip,并且一些模塊可以由半導(dǎo)體制造商提供。塊可以包含邏輯ip或ip的集合。例如,用于視頻編碼器模塊的塊可以是mpeg編碼器ip。
在操作102中,限定esl模型中每一塊的esl功率狀態(tài)。在一些實(shí)施例中,esl功率狀態(tài)可源于塊的功能狀態(tài)。例如,用于mpeg編碼器塊的esl功率狀態(tài)可以是mpeg4狀態(tài)。
在操作103中,選擇每一個(gè)esl功率狀態(tài)的驗(yàn)證用例。這些驗(yàn)證用例可選自esl驗(yàn)證用例庫(kù)。例如,用于mpec4功率狀態(tài)的驗(yàn)證用例可以是mpeg4_i_幀(frame)驗(yàn)證用例。
在操作104中,設(shè)置了每一個(gè)驗(yàn)證用例的目標(biāo)覆蓋率值。在一些實(shí)施例中,目標(biāo)覆蓋率值是被esl驗(yàn)證用例覆蓋的功能代碼覆蓋率的期望值。
在操作105中,執(zhí)行每一驗(yàn)證用例的寄存器傳輸級(jí)(rtl)模擬,并且在操作106中得到每個(gè)驗(yàn)證用例的實(shí)際覆蓋率值。實(shí)際覆蓋率值是作為rtl模擬的結(jié)果被esl驗(yàn)證用例實(shí)際覆蓋的功能代碼覆蓋率的值。
在操作107中,基于目標(biāo)覆蓋率值和實(shí)際覆蓋率值來(lái)更新每一塊的esl功率狀態(tài)和驗(yàn)證用例。在一些實(shí)施例中,上述更新操作包括添加或去除用于esl功率狀態(tài)的一些驗(yàn)證用例和/或添加或去除塊的一些esl功率狀態(tài)。目標(biāo)覆蓋率值和在rtl模擬之后得到的實(shí)際覆蓋率值能夠幫助芯片設(shè)計(jì)者理解被每個(gè)驗(yàn)證用例覆蓋的預(yù)期的和實(shí)際的覆蓋之間的差異,因此芯片設(shè)計(jì)者能夠更新每一塊的esl功率狀態(tài)和驗(yàn)證用例以實(shí)現(xiàn)在esl模型中塊的更好的覆蓋。
圖2是示出了根據(jù)實(shí)施例的用于功率狀態(tài)覆蓋率估計(jì)的系統(tǒng)200的框圖。參考圖2,系統(tǒng)200包括模塊201、esl驗(yàn)證用例202、esl模型203和功能測(cè)試臺(tái)205。模塊201可以是包括一組要被驗(yàn)證的ip的具體應(yīng)用。例如,模塊201可以是包括一組視頻編碼器ip(諸如,視頻壓縮ip、mpeg編碼器ip、jpeg編碼器ip、控制塊ip等)的視頻編碼器應(yīng)用。
為了驗(yàn)證模塊201,生成了esl驗(yàn)證用例202。esl驗(yàn)證用例202可以選自esl驗(yàn)證用例庫(kù)。在一些實(shí)施例中,esl驗(yàn)證用例202可以由自動(dòng)工具生成。esl驗(yàn)證用例202也可以是由系統(tǒng)架構(gòu)師編寫(xiě)的測(cè)試代碼。esl驗(yàn)證用例202也可以是自動(dòng)工具和系統(tǒng)架構(gòu)編程的混合。在一些實(shí)施例中,esl驗(yàn)證用例202中的每個(gè)驗(yàn)證用例可以用于驗(yàn)證特定ip的功能代碼覆蓋率。
基于生成的esl驗(yàn)證用例202,為模塊201創(chuàng)建esl模型203。esl模型203可以包括多個(gè)塊,并且每個(gè)塊均可以包括多個(gè)功率狀態(tài)。例如,在圖2中,esl模型203可以包括塊1至塊k,k是自然數(shù)。另外,塊1可以包括功率狀態(tài)ps1b1至psnb1,塊2可以包括功率狀態(tài)ps1b2至psmb2,并且塊k可以包括功率狀態(tài)ps1bk至psqbk,其中n、m和q是自然數(shù)。
對(duì)于在esl模型203中的每個(gè)功率狀態(tài),將生成的esl驗(yàn)證用例202中的一組驗(yàn)證用例分配給esl模型203中的每個(gè)功率狀態(tài),并且為分配至該功率狀態(tài)的每個(gè)驗(yàn)證用例設(shè)定了目標(biāo)覆蓋率值。例如,在單元204中,t(ps1b1)是分配至塊1的功率狀態(tài)ps1b1的一組驗(yàn)證用例,而ctt(ps1b1)是為t(ps1b1)中的每個(gè)驗(yàn)證用例設(shè)置的一組目標(biāo)覆蓋率值。此外,t(ps1b2)是分配至塊2的功率狀態(tài)ps1b2的一組驗(yàn)證用例,而ctt(ps1b2)是為t((ps1b2)中的每個(gè)驗(yàn)證用例設(shè)置的一組目標(biāo)覆蓋率值。類(lèi)似地,t(ps1bk)是分配至塊k的功率狀態(tài)ps1bk的一組驗(yàn)證用例,而ctt(ps1bk)是為t(ps1bk)中的每個(gè)驗(yàn)證用例設(shè)置的一組目標(biāo)覆蓋率值。
在一些實(shí)施例中,分配至功率狀態(tài)的驗(yàn)證用例可以用于驗(yàn)證對(duì)應(yīng)于該功率狀態(tài)的功能。例如,分配至h264功率狀態(tài)的驗(yàn)證用例可以是驗(yàn)證h264功率狀態(tài)的h264功能的h264_i_幀驗(yàn)證用例。在一些實(shí)施例中,每個(gè)驗(yàn)證用例的目標(biāo)覆蓋率是由芯片設(shè)計(jì)者設(shè)置的預(yù)期的覆蓋率。
在準(zhǔn)備好所有的驗(yàn)證用例和目標(biāo)覆蓋率之后,將它們傳遞至功能測(cè)試臺(tái)205。建立功能測(cè)試臺(tái)以通過(guò)提供檢查設(shè)計(jì)的場(chǎng)景來(lái)功能性地驗(yàn)證設(shè)計(jì),給予一定的輸入,設(shè)計(jì)執(zhí)行規(guī)范。
圖3是示出根據(jù)實(shí)施例的用于宏級(jí)功率狀態(tài)覆蓋率估計(jì)的系統(tǒng)300的框圖。參考圖3,系統(tǒng)300類(lèi)似于在圖2中描述和示出的系統(tǒng)200,除了,例如模型303。在esl模型303中的宏1可以包括一個(gè)或多個(gè)塊并且功率狀態(tài)被賦給宏1中的所有塊。在本實(shí)施例中,宏1包括塊1至n和關(guān)聯(lián)的功率狀態(tài)ps1b1至psnb1。esl模型303可以包括塊n+1至塊n+k。此外,塊n+1包括功率狀態(tài)ps1b(n+1)至psmb(n+1),并且塊n+k包括功率狀態(tài)ps1b(n+k)至psqb(n+k)。
圖3的余下的單元類(lèi)似于圖2的相應(yīng)的單元。在宏觀級(jí)實(shí)現(xiàn)的條件下,esl模型中的驗(yàn)證用例能夠以更大的靈活性來(lái)更新和管理。
圖4是示出根據(jù)實(shí)施例的具體模塊的esl模型403和驗(yàn)證用例404的示意圖。例如,如果模塊401是視頻編碼模塊,那么用于模塊401的esl模型403可以包括諸如視頻壓縮、mpeg編碼器、jpeg編碼器、控制模塊等多個(gè)塊。表404示出了用于驗(yàn)證模塊401的esl模型中的各塊、功率狀態(tài)以及功率驗(yàn)證用例之間的關(guān)系。每個(gè)驗(yàn)證用例都可以分配有目標(biāo)覆蓋率值ctt。
在本實(shí)施例中,塊“視頻壓縮”包括功率狀態(tài)“h264狀態(tài)”,其中,h264指代視頻壓縮格式。用于h264狀態(tài)的功率驗(yàn)證用例包括h264_i_幀測(cè)試(ctt=30%)、h264_b_幀測(cè)試(ctt=30%)以及h264_p_幀測(cè)試(ctt=40%)。
此外,塊“mpeg編碼器”包括功率狀態(tài)“mpeg4狀態(tài)”、“mpeg2狀態(tài)”和“mpeg1狀態(tài)”。用于mpeg4狀態(tài)的功率驗(yàn)證用例包括mpeg4_i_幀測(cè)試(ctt=25%)和mpeg4_p_幀測(cè)試(ctt=25%)。用于mpeg2狀態(tài)的功率驗(yàn)證用例包括mpeg2_i_幀測(cè)試(ctt=15%)和mpeg2_p_幀測(cè)試(ctt=15%)。用于mpeg1狀態(tài)的功率驗(yàn)證用例包括mpeg1測(cè)試(ctt=20%)。
此外,塊“jpeg編碼器”包括功率狀態(tài)“jpeg狀態(tài)”和關(guān)聯(lián)的功率驗(yàn)證用例jpeg測(cè)試(ctt=90%)。另外,塊“"ctrl塊”包括功率狀態(tài)“idle狀態(tài)”和關(guān)聯(lián)的功率驗(yàn)證用例idle測(cè)試(ctt=90%)。
在一些實(shí)施例中,esl驗(yàn)證用例402中的每個(gè)驗(yàn)證用例連同與驗(yàn)證用例關(guān)聯(lián)的其他信息(諸如模塊、塊、功率狀態(tài)、目標(biāo)覆蓋率值等)存儲(chǔ)在數(shù)據(jù)庫(kù)中。以這種方式,表404中示出的關(guān)系可以自動(dòng)地生成。
在一些實(shí)施例中,將用于驗(yàn)證塊的功率狀態(tài)和功率驗(yàn)證用例可以根據(jù)一組預(yù)定義的規(guī)則自動(dòng)地確定。在一些實(shí)施例中,將用于驗(yàn)證塊401的塊、功率狀態(tài)、功率驗(yàn)證用例和目標(biāo)覆蓋率值可以由芯片設(shè)計(jì)者決定。
圖5是根據(jù)實(shí)施例的功能驗(yàn)證系統(tǒng)500的示意圖。參考圖5,功能驗(yàn)證系統(tǒng)500包括功能測(cè)試臺(tái)502、rtl模擬工具503、模擬日志和報(bào)告數(shù)據(jù)庫(kù)504以及編碼覆蓋率數(shù)據(jù)庫(kù)505。在功能驗(yàn)證系統(tǒng)500中,如圖4的表404中列出,具有目標(biāo)覆蓋率值的功率驗(yàn)證用例501被構(gòu)建并且成為功率驗(yàn)證測(cè)試臺(tái)502的一部分。
通過(guò)rtl模擬工具503來(lái)使用功能驗(yàn)證測(cè)試臺(tái)502以功能性地驗(yàn)證芯片設(shè)計(jì)。在一些實(shí)施例中,功能驗(yàn)證測(cè)試臺(tái)502可以包括與要被驗(yàn)證的模塊不相關(guān)的單元。例如,功能驗(yàn)證測(cè)試臺(tái)502可以包括與用于視頻編碼器模塊的驗(yàn)證用例不相關(guān)的測(cè)試臺(tái)控制邏輯。
在rtl模擬之后,測(cè)試結(jié)果可以存儲(chǔ)在模擬日志和報(bào)告數(shù)據(jù)庫(kù)504中,并且功率驗(yàn)證用例501的實(shí)際編碼覆蓋率值可以被存儲(chǔ)在編碼覆蓋率數(shù)據(jù)庫(kù)505中。
圖6是示出了根據(jù)實(shí)施例的用于估計(jì)esl模型中的塊的功率狀態(tài)覆蓋率的方法的流程圖。在一些實(shí)施例中,塊的功率狀態(tài)覆蓋率可以與該塊中的ip的功能編碼覆蓋率具有直接的相關(guān)性。為了計(jì)算功率狀態(tài)覆蓋率,下面可以在等式1中定義功率狀態(tài)覆蓋率度量:
在等式1中,pscov代表esl模型中的塊的功率狀態(tài)覆蓋率,sesl代表“錯(cuò)誤狀態(tài)”,即,驗(yàn)證用例被限定在esl模型中但是沒(méi)有運(yùn)行塊中的ip的目標(biāo)編碼,sip代表“丟失狀態(tài)”,即,驗(yàn)證用例被rtl設(shè)計(jì)功能編碼覆蓋率分析覆蓋但是沒(méi)能在esl模型中找到,而sboth代表“有效狀態(tài)”,即,驗(yàn)證用例被限定在esl模型中并且被rtl設(shè)計(jì)功能代碼覆蓋率分析適當(dāng)?shù)馗采w。
在一些實(shí)施例中,等式1中的參數(shù)α可以是使用者限定的在0至1范圍內(nèi)的值。在一些實(shí)施例中,在確定功率狀態(tài)覆蓋率時(shí),等式1中的參數(shù)α可以根據(jù)sip的影響因子來(lái)限定。
參考圖6,在操作601中,為塊選擇至少一個(gè)驗(yàn)證用例。在一些實(shí)施例中,可以基于圖4中示出的表404來(lái)選擇驗(yàn)證用例。例如,用于mpeg編碼器塊的驗(yàn)證用例可以包括mpeg4_i_幀、mpeg4_p_幀、mpeg2_i_幀、mpeg2_p_幀以及mpeg1驗(yàn)證用例。在一些實(shí)施例中,在計(jì)算功率狀態(tài)覆蓋率之前可以將塊覆蓋率值初始化為0。
在操作602中,為選定的要被驗(yàn)證的驗(yàn)證用例中的一個(gè)設(shè)置目標(biāo)覆蓋率值。在一些實(shí)施例中,可以基于圖4中示出的表404中的ctt來(lái)限定目標(biāo)覆蓋率值。例如,還參考圖4,對(duì)于mpeg編碼器的mpeg4狀態(tài),mpeg4_i_幀驗(yàn)證用例的目標(biāo)覆蓋率值可以是25%,而mpeg4_p_幀驗(yàn)證用例的目標(biāo)覆蓋率值可以是25%。在一些實(shí)施例中,目標(biāo)覆蓋率值可以在10%至100%的范圍內(nèi)。
在操作603中,執(zhí)行了用于驗(yàn)證用例的rtl模擬。接著,在操作604中得到驗(yàn)證用例的實(shí)際覆蓋率值。實(shí)際覆蓋率值是作為rtl模擬的結(jié)果被驗(yàn)證用例實(shí)際覆蓋的功能代碼覆蓋率的值。
在操作605中,確定實(shí)際覆蓋率值是否大于或等于目標(biāo)覆蓋率值。如果是,那么在操作606中更新sboth和塊覆蓋率值,然后工藝?yán)^續(xù)至操作609。如果不是,那么工藝?yán)^續(xù)至操作607,如下面討論。
在操作606中,可以通過(guò)對(duì)sboth添加固定的或變化的數(shù)字來(lái)更新sboth。在實(shí)施例中,在操作606中,可以根據(jù)下面的等式2更新塊覆蓋率值。
cb=cb+cctj(等式2)
在等式2中,cb代表塊覆蓋率值,并且cctj代表塊的被驗(yàn)證的第j個(gè)驗(yàn)證用例的實(shí)際覆蓋率值。例如,cb在驗(yàn)證塊的第一驗(yàn)證用例之前可以被初始化為0。如果第一驗(yàn)證用例的實(shí)際覆蓋率值是30%(即,cct1=30%),那么cb被更新為30%。
在操作607中,如果驗(yàn)證用例滿足一些標(biāo)準(zhǔn),那么驗(yàn)證用例被添加至排除列表。在一些實(shí)施例中,操作607是可選的并且工藝?yán)^續(xù)至操作608。在一些實(shí)施例中,如果驗(yàn)證用例的實(shí)際覆蓋率值在閾值以下,那么驗(yàn)證用例被添加至排除列表。如果驗(yàn)證用例被添加至排除列表,那么當(dāng)下次計(jì)算該塊的功率狀態(tài)覆蓋率時(shí)該驗(yàn)證用例可以不被用作塊的驗(yàn)證用例的一個(gè)。在一些實(shí)施例中,如果被驗(yàn)證的驗(yàn)證用例已經(jīng)列在排除列表中,該驗(yàn)證用例可以從進(jìn)一步的操作中排除并且工藝返回至操作602,在該操作中,將驗(yàn)證塊的下一個(gè)驗(yàn)證用例。在排除列表的幫助下,具有負(fù)面覆蓋率影響的驗(yàn)證用例可以從測(cè)試中排除,因此功率狀態(tài)覆蓋率的計(jì)算能夠更加精確。
在操作608中,更新sesl,然后工藝?yán)^續(xù)至操作609。在一些實(shí)施例中,可以通過(guò)對(duì)sesl添加固定的或變化的數(shù)字來(lái)更新sesl。
在操作609中,確定被驗(yàn)證的驗(yàn)證用例是否是塊的最后的驗(yàn)證用例。如果是,那么工藝?yán)^續(xù)至操作610。如果不是,那么工藝返回至操作602,在操作602中,將驗(yàn)證塊的下一個(gè)驗(yàn)證用例。
在操作610中,確定塊覆蓋率值是否大于或等于預(yù)定義的塊覆蓋率值。如果不是,那么在操作611中,為塊添加至少一個(gè)新驗(yàn)證用例并且更新sip,然后工藝返回至操作602,在操作602中將驗(yàn)證該至少一個(gè)新驗(yàn)證用例。如果是,那么工藝?yán)^續(xù)至操作612。在一些實(shí)施例中,預(yù)定義的塊覆蓋率值可以定義為100%,這意味著塊的整個(gè)設(shè)計(jì)都應(yīng)當(dāng)覆蓋有規(guī)定的功率狀態(tài)。
在操作611中,添加至塊的該至少一個(gè)新驗(yàn)證用例可以從圖2示出的esl驗(yàn)證用例202中選擇。在操作611中,可以通過(guò)對(duì)sip添加固定的或變化的數(shù)字來(lái)更新sip。
在操作612中,計(jì)算塊的功率狀態(tài)覆蓋率。在一些實(shí)施例中,可以根據(jù)等式1,使用sesl、sip和sboth的最終值來(lái)計(jì)算該功率狀態(tài)覆蓋率。
在一些實(shí)施例中,可以基于通過(guò)等式1計(jì)算的該esl模型中的每塊的功率狀態(tài)覆蓋來(lái)計(jì)算esl模型的整個(gè)功率狀態(tài)覆蓋率。例如,可以在下面的等式3中定義功率狀態(tài)覆蓋率:
在等式3中,psall代表具有n塊的esl模型的總功率狀態(tài)覆蓋率,psi代表在esl模型中第i塊的功率狀態(tài)覆蓋率,i是自然數(shù),而βi是第i塊的權(quán)重值,并且所有βi的和等于1。在一些實(shí)施例中,每塊的βi可以是相同的。在一些實(shí)施例中,可以根據(jù)每塊的功率狀態(tài)的數(shù)量和/或每塊的驗(yàn)證用例的數(shù)量來(lái)限定βi。
圖7是根據(jù)實(shí)施例的用于esl模型的初始的和更新的驗(yàn)證用例的示圖。參考圖7,表701示出了esl模型中用于驗(yàn)證模塊的初始驗(yàn)證用例。表701的結(jié)構(gòu)可以類(lèi)似于圖4中示出的表404。
表702示出了在執(zhí)行了驗(yàn)證用例的rtl模擬之后的esl模型中用于驗(yàn)證模塊的更新的驗(yàn)證用例。在一些實(shí)施例中,上述更新操作包括添加或去除用于功率狀態(tài)的一些驗(yàn)證用例和/或添加或去除用于表701中的塊的一些功率狀態(tài)。
在一些實(shí)施例中,當(dāng)圖6中示出的方法600進(jìn)行至操作611時(shí),可以將新驗(yàn)證用例添加至表701。例如,表702中的項(xiàng)目703包括添加的新的驗(yàn)證用例。在一些實(shí)施例中,可以基于與新驗(yàn)證用例相關(guān)的目標(biāo)覆蓋率值來(lái)確定添加至表701的新驗(yàn)證用例。例如,如果新驗(yàn)證用例將要添加至表701中的視頻壓縮塊,可以將指定給視頻壓縮塊的驗(yàn)證用例中具有最高目標(biāo)覆蓋率的驗(yàn)證用例首先添加至表701中的視頻壓縮塊。
在一些實(shí)施例中,當(dāng)驗(yàn)證用例列在排除列表(該表可在圖6中示出的操作607中更新)中時(shí),可以從表701中去除該驗(yàn)證用例。例如,如果表702的項(xiàng)目704中的驗(yàn)證用例列在排除列表中,該驗(yàn)證用例可以從表702中去除并且當(dāng)下次要驗(yàn)證視頻編碼器模塊時(shí),該驗(yàn)證用例可以不被選作視頻編碼器模塊的驗(yàn)證用例。當(dāng)下次要驗(yàn)證視頻編碼器模塊時(shí),與該驗(yàn)證用例關(guān)聯(lián)的功率狀態(tài)也可以被排除作為視頻編碼器模塊的功率狀態(tài)。
在表701的更新之后,可以相應(yīng)地更新esl模型的塊和/或功率狀態(tài)。當(dāng)下次同一模塊要被驗(yàn)證時(shí),更新的esl模型和驗(yàn)證用例可以用于該模塊。通過(guò)這種方式,可以實(shí)現(xiàn)塊和esk模型的更好的功率狀態(tài)覆蓋率。
圖8是根據(jù)一些實(shí)施例的用于實(shí)現(xiàn)參考圖1至圖6所述的方法和系統(tǒng)實(shí)施例的硬件系統(tǒng)800的框圖。系統(tǒng)800包括至少一個(gè)處理器802、網(wǎng)絡(luò)接口804、輸入和輸出(i/o)器件806、存儲(chǔ)介質(zhì)(storage)808、存儲(chǔ)器812和總線810??偩€810將網(wǎng)絡(luò)接口804、i/o器件806、儲(chǔ)存器808和存儲(chǔ)器812連接至處理器802。
在一些實(shí)施例中,存儲(chǔ)器812包括隨機(jī)存取存儲(chǔ)器(ram)和/或其他的易失性存儲(chǔ)器件和/或只讀存儲(chǔ)器(rom)和/或其他的非易失性存儲(chǔ)器件。存儲(chǔ)器812包括內(nèi)核816和用戶(hù)空間814,并且被配置為存儲(chǔ)要被處理器802執(zhí)行的程序指令以及被程序指令訪問(wèn)的數(shù)據(jù)。
在一些實(shí)施例中,網(wǎng)絡(luò)接口804被配置為通過(guò)網(wǎng)絡(luò)訪問(wèn)遠(yuǎn)程存儲(chǔ)的程序指令和被程序指令訪問(wèn)的數(shù)據(jù)。i/o器件806包括輸入器件和輸出器件,并且被配置為使用戶(hù)能夠與系統(tǒng)800交互。輸入器件包括例如鍵盤(pán)和鼠標(biāo)等。輸出器件包括例如顯示器和打印機(jī)等。存儲(chǔ)器件808被配置為存儲(chǔ)程序指令和被程序指令訪問(wèn)的數(shù)據(jù)。存儲(chǔ)介質(zhì)808包括例如磁盤(pán)和光盤(pán)。
在一些實(shí)施例中,當(dāng)執(zhí)行程序指令時(shí),處理器802被配置為執(zhí)行參考圖1和圖6描述的方法或被配置作為參考圖2和圖5描述的系統(tǒng)。
在一些實(shí)施例中,程序指令存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,諸如一個(gè)或多個(gè)光學(xué)磁盤(pán)、硬盤(pán)和非易失性存儲(chǔ)器件。在一些實(shí)施例中,圖4中示出的表404和圖7中示出的表701和702可以存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的文件中。
本公開(kāi)的實(shí)施例提供驗(yàn)證功率狀態(tài)覆蓋率和估計(jì)功率消耗的方法。本公開(kāi)的實(shí)施例提供功率狀態(tài)覆蓋率度量和方法以基于通過(guò)給定ip的功能驗(yàn)證而獲得的功能編碼覆蓋率來(lái)估計(jì)功率狀態(tài)覆蓋率。本公開(kāi)的實(shí)施例可以檢查esl模型是否具有任何丟失的功率狀態(tài)以及esl模型中限定的功率狀態(tài)是否是有效的功率狀態(tài)并且覆蓋芯片的大部分功能部分。本公開(kāi)的實(shí)施例能夠確定esl模型中的哪個(gè)功率狀態(tài)是有效的,多少功能覆蓋率與每個(gè)功率狀態(tài)關(guān)聯(lián)以及esl模型中的所有的功率狀態(tài)的總設(shè)計(jì)覆蓋率。
在一實(shí)施例中,在通過(guò)至少一個(gè)處理器執(zhí)行的用于管理芯片設(shè)計(jì)中的模塊的驗(yàn)證用例的方法中,創(chuàng)建包括用于模塊的多個(gè)塊的電子系統(tǒng)級(jí)(esl)模型。為多個(gè)塊的每個(gè)限定至少一個(gè)esl功率狀態(tài)。為esl功率狀態(tài)的每個(gè)選擇至少一個(gè)驗(yàn)證用例。為驗(yàn)證用例的每個(gè)設(shè)置目標(biāo)覆蓋率值。為每個(gè)驗(yàn)證用例的實(shí)施寄存器傳輸級(jí)(rtl)模擬。得到每個(gè)驗(yàn)證用例的實(shí)際覆蓋率值。為多個(gè)塊的每個(gè)更新esl功率狀態(tài)和驗(yàn)證用例。
在一些實(shí)施例中,更新所述多個(gè)塊的每個(gè)塊的所述esl功率狀態(tài)和所述驗(yàn)證用例包括基于所述目標(biāo)覆蓋率值和所述實(shí)際覆蓋率值來(lái)更新所述多個(gè)塊的每個(gè)塊的所述esl功率狀態(tài)和所述驗(yàn)證用例。
在一些實(shí)施例中,更新所述多個(gè)塊的每個(gè)的所述esl功率狀態(tài)和所述驗(yàn)證用例包括添加或去除所述esl功率狀態(tài)的至少一個(gè)的至少一個(gè)驗(yàn)證用例或添加或去除所述塊的至少一個(gè)的至少一個(gè)esl功率狀態(tài)。
在另一個(gè)實(shí)施例中,在通過(guò)至少一個(gè)處理器實(shí)施的用于估計(jì)電子系統(tǒng)級(jí)(esl)模型中的塊的功率狀態(tài)覆蓋率的方法中,為塊設(shè)置第一值、第二值、第三值和塊覆蓋率值。為塊選擇至少一個(gè)驗(yàn)證用例。對(duì)于至少一個(gè)驗(yàn)證用例的每個(gè):(a)設(shè)置目標(biāo)覆蓋率值,(b)實(shí)施寄存器傳輸級(jí)(rtl)模擬,(c)得到實(shí)際覆蓋率值,(d)確定實(shí)際覆蓋率值是否大于或等于目標(biāo)覆蓋率值,以及(e)當(dāng)實(shí)際覆蓋率值大于或等于目標(biāo)覆蓋率值時(shí)更新第一值和塊覆蓋率值。確定塊覆蓋率值大于或等于預(yù)限定的塊覆蓋率值。當(dāng)塊覆蓋率值大于或等于預(yù)定義的塊覆蓋率值時(shí)計(jì)算塊的功率狀態(tài)覆蓋率。
在一些實(shí)施例中,該方法還包括:當(dāng)所述實(shí)際覆蓋率值小于所述目標(biāo)覆蓋率值時(shí),更新所述第二值。
在一些實(shí)施例中,該方法還包括:當(dāng)所述塊覆蓋率值小于所述預(yù)定義的塊覆蓋率值時(shí),為所述塊添加至少一個(gè)新的驗(yàn)證用例并且更新所述第三值。
在一些實(shí)施例中,計(jì)算所述塊的所述功率狀態(tài)覆蓋率包括基于所述第一值、所述第二值和所述第三值計(jì)算所述塊的所述功率狀態(tài)覆蓋率。
在一些實(shí)施例中,所述第三值被影響因子更改。
在一些實(shí)施例中,在添加所述塊的所述至少一個(gè)新的驗(yàn)證用例之后,計(jì)算所述塊的所述功率狀態(tài)覆蓋率。
在一些實(shí)施例中,更新所述第一值、所述第二值或所述第三值包括添加固定或可變化的數(shù)字至所述第一值、所述第三值或所述第三值。
在一些實(shí)施例中,基于所述實(shí)際覆蓋率值來(lái)更新所述塊覆蓋率值。
在一些實(shí)施例中,該方法還包括:如果所述驗(yàn)證用例的所述實(shí)際覆蓋率值在閾值以下,將所述至少一個(gè)驗(yàn)證用例的驗(yàn)證用例添加至排除列表。
在一些實(shí)施例中,將所述排除列表中的所述驗(yàn)證用例從所述塊的所述功率狀態(tài)覆蓋率的計(jì)算中排除出去。
在一些實(shí)施例中,基于與所述至少一個(gè)新的驗(yàn)證用例關(guān)聯(lián)的所述目標(biāo)覆蓋率值來(lái)添加所述至少一個(gè)新的驗(yàn)證用例。
在又一個(gè)實(shí)施例中,在通過(guò)至少一個(gè)處理器實(shí)施的用于估計(jì)電子系統(tǒng)級(jí)(esl)模型的總功率狀態(tài)覆蓋率的方法中,為每個(gè)塊設(shè)置第一值和第二值。為esl模型中的每個(gè)塊選擇至少一個(gè)驗(yàn)證用例。對(duì)于至少一個(gè)驗(yàn)證用例的每個(gè),(a)設(shè)置目標(biāo)覆蓋率值,(b)實(shí)施寄存器傳輸級(jí)(rtl)模擬,(c)得到實(shí)際覆蓋率值,(d)基于實(shí)際覆蓋率值是否小于目標(biāo)覆蓋率值來(lái)更新第一值和第二值。為計(jì)算每個(gè)塊的功率狀態(tài)覆蓋率。計(jì)算esl模型的總功率狀態(tài)覆蓋率。
在一些實(shí)施例中,計(jì)算所述塊的所述功率狀態(tài)覆蓋率包括基于所述第一值、所述第二值來(lái)計(jì)算所述塊的所述功率狀態(tài)覆蓋率。
在一些實(shí)施例中,計(jì)算所述esl模型的所述總功率狀態(tài)覆蓋率包括基于每個(gè)塊的所述功率狀態(tài)率來(lái)計(jì)算所述esl模型的所述總功率狀態(tài)覆蓋率。
在一些實(shí)施例中,基于每個(gè)塊的所述功率狀態(tài)覆蓋率和權(quán)重值來(lái)計(jì)算所述esl模型的所述總功率狀態(tài)覆蓋率。
在一些實(shí)施例中,該方法還包括:基于所述目標(biāo)覆蓋率值和所述實(shí)際覆蓋率值來(lái)更新所述esl模型中的每個(gè)塊的所述至少一個(gè)驗(yàn)證用例。
在一些實(shí)施例中,該方法還包括:在更新了所述esl模型的每個(gè)塊的所述至少一個(gè)驗(yàn)證用例之后,重新計(jì)算每個(gè)塊的所述功率狀態(tài)覆蓋率和所述esl模型的所述總功率狀態(tài)覆蓋率。
以上論述了若干實(shí)施例的特征,使得本領(lǐng)域技術(shù)人員可以更好地理解本公開(kāi)的各方面。本領(lǐng)域技術(shù)人員應(yīng)該理解,他們可以容易地使用本發(fā)明作為基礎(chǔ)來(lái)設(shè)計(jì)或修改用于實(shí)施與本文所介紹的實(shí)施例相同的目的和/或?qū)崿F(xiàn)相同優(yōu)點(diǎn)的其他工藝和結(jié)構(gòu)。本領(lǐng)域技術(shù)人員也應(yīng)該意識(shí)到,這種等同構(gòu)造并不背離本發(fā)明的精神和范圍,并且在不背離本發(fā)明的精神和范圍的情況下,本文中他們可以做出多種變化、替換以及改變。