使用Perl語言對(duì)電路verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的系統(tǒng)及方法
【專利摘要】使用Perl語言對(duì)電路Verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的系統(tǒng)及方法,涉及集成電路可測(cè)性設(shè)計(jì)【技術(shù)領(lǐng)域】。本發(fā)明的目的是為可測(cè)性設(shè)計(jì)人員提供便捷的實(shí)現(xiàn)過程,提高電路可測(cè)性設(shè)計(jì)的效率和正確性,增加電路的可測(cè)性和可靠性,同時(shí)降低電路的測(cè)試成本。Verilog網(wǎng)表解析模塊完成對(duì)待進(jìn)行可測(cè)性設(shè)計(jì)的電路網(wǎng)表的解析過程,獲得必要的信息;電路層次展開模塊完成對(duì)使用自頂向下方式設(shè)計(jì)的電路的展開過程,使電路網(wǎng)表以底層元件的方式直接描述;觸發(fā)器替換模塊完成不可測(cè)觸發(fā)器的替換過程,使其成為具有可測(cè)性的觸發(fā)器;掃描鏈連接模塊完成掃描鏈的連接;測(cè)試封裝模塊完成對(duì)最后的測(cè)試封裝。本發(fā)明完全適于集成電路的可測(cè)性設(shè)計(jì)。
【專利說明】使用Per I語言對(duì)電路ver i log網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)字電路的可測(cè)性設(shè)計(jì)自動(dòng)化的系統(tǒng)和方法,尤其是使用Perl語言對(duì)Verilog語言網(wǎng)表描述的電路進(jìn)行自動(dòng)化可測(cè)性設(shè)計(jì)的框架和方法,涉及集成電路可測(cè)性設(shè)計(jì)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]在集成電路被廣泛使用的今天,保證集成電路的可靠性成為一個(gè)重要的課題,而有效的方法就是對(duì)集成電路進(jìn)行測(cè)試,為了對(duì)集成電路進(jìn)行充分的測(cè)試,對(duì)其進(jìn)行可測(cè)性設(shè)計(jì)是必須的一個(gè)過程。
[0003]集成電路中很大一部分是數(shù)字集成電路,其可以看出是由組合電路部分和時(shí)序電路部分構(gòu)成。在可測(cè)性設(shè)計(jì)過程中,就是對(duì)去時(shí)序部分進(jìn)行可測(cè)性修改,需要涉及到的主要過程有兩個(gè),一個(gè)是對(duì)電路中的觸發(fā)器進(jìn)行改造,使其成為具有可測(cè)性的觸發(fā)器,接著對(duì)具有可測(cè)性的觸發(fā)器進(jìn)行連接,使其成為測(cè)試掃描鏈。在完成這兩個(gè)工作以后就可以對(duì)電路的外圍加一個(gè)測(cè)試殼,可以控制對(duì)電路施加激勵(lì),以便于在測(cè)試狀態(tài)下對(duì)電路進(jìn)行測(cè)試。這樣的可測(cè)性設(shè)計(jì)可以保證在電路原有功能不變的情況下,對(duì)電路的可測(cè)性進(jìn)行改善,使電路可以得到充分的測(cè)試,保證電路的正確性和可靠性。
[0004]可測(cè)性設(shè)計(jì)是一個(gè)工作量很大的工作,特別是對(duì)大規(guī)模的集成電路來說,有時(shí)工作量是相當(dāng)巨大的。因此需要一個(gè)可以輔助可測(cè)性設(shè)計(jì)人員完成可測(cè)性設(shè)計(jì)的自動(dòng)化可測(cè)性設(shè)計(jì)的軟件。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種使用Perl語言對(duì)電路Verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的系統(tǒng)及方法,以輔助可測(cè)性設(shè)計(jì)人員完成可測(cè)性設(shè)計(jì)的自動(dòng)化可測(cè)性設(shè)計(jì),為可測(cè)性設(shè)計(jì)人員提供便捷的實(shí)現(xiàn)過程,提高電路可測(cè)性設(shè)計(jì)的效率和正確性,增加電路的可測(cè)性和可靠性,同時(shí)降低電路的測(cè)試成本。
[0006]本發(fā)明為解決上述技術(shù)問題采取的技術(shù)方案是:
[0007]一種使用Perl語言對(duì)電路Verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的系統(tǒng),所述系統(tǒng)包括:
[0008]Verilog網(wǎng)表解析模塊:用于完成對(duì)待進(jìn)行可測(cè)性設(shè)計(jì)的電路網(wǎng)表的解析過程,獲得電路的結(jié)構(gòu)信息、觸發(fā)器信息、端口信息,并將電路的結(jié)構(gòu)信息輸出給電路層次展開模塊、電路的觸發(fā)器信息輸出給觸發(fā)器替換模塊和掃描鏈連接模塊、電路的端口信息輸出給測(cè)試封裝模塊;
[0009]電路層次展開模塊:用于讀取的電路的結(jié)構(gòu)信息并根據(jù)該信息將層次化的電路結(jié)構(gòu)展開成由最底層單元直接構(gòu)成的電路結(jié)構(gòu)以Verilog的形式輸出;還用于將電路中使用的觸發(fā)器的詳細(xì)情況送給觸發(fā)器替換模塊,完成對(duì)使用自頂向下方式設(shè)計(jì)的電路的展開過程,使電路網(wǎng)表以底層元件的方式直接描述;
[0010]觸發(fā)器替換模塊:用于讀取的電路的觸發(fā)器信息并根據(jù)該信息將電路層次展開模塊輸出的網(wǎng)表文件中的所有觸發(fā)器替換成可測(cè)性的觸發(fā)器,并以Verilog語言格式輸出替換后的電路描述文件;還用于將電路的觸發(fā)器信息傳遞給掃描鏈連接模塊;從而完成不可測(cè)觸發(fā)器的替換過程,使其成為具有可測(cè)性的觸發(fā)器;
[0011]掃描鏈連接模塊:用于讀取的電路的觸發(fā)器信息并根據(jù)該信息將觸發(fā)器替換模塊輸出電路中的可測(cè)性觸發(fā)器按要求連接成內(nèi)部掃描鏈,同時(shí)將連接后的電路以Verilog語言形式輸出,并將內(nèi)部掃描鏈連接信息輸出給測(cè)試封裝模塊;完成掃描鏈的連接;
[0012]測(cè)試封裝模塊:用于讀取的電路的端口信息并根據(jù)該信息以及內(nèi)部掃描鏈連接模塊輸出的掃描鏈連接信息,添加邊界掃描單元,并按照用戶要求將邊界掃描單元與內(nèi)部掃描鏈連接,構(gòu)成測(cè)試掃描鏈,同時(shí)為電路加上IEEE1500標(biāo)準(zhǔn)的測(cè)試Wrapper,完成對(duì)最后的測(cè)試封裝。
[0013]一種使用Perl語言對(duì)電路verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的方法,所述方法包括:
[0014]步驟一、將待可測(cè)性設(shè)計(jì)的電路網(wǎng)表交給Verilog網(wǎng)表解析模塊,使用Perl語言分析電路的層次結(jié)構(gòu),包括詳細(xì)的電路模塊的調(diào)用關(guān)系;解析Verilog網(wǎng)表,獲得電路中使用的觸發(fā)器信息,包括種類、數(shù)量和位置;獲得電路的端口信息;
[0015]步驟二、將待可測(cè)性設(shè)計(jì)的網(wǎng)表交給電路層次展開模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊輸出的電路層次信息,將電路展開成由最底層元件直接構(gòu)成的電路,同時(shí)電路的功能不變只在表現(xiàn)形式上有變化;
[0016]步驟三、將展開后的網(wǎng)表交給觸發(fā)器替換模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊輸出的觸發(fā)器信息對(duì)所有觸發(fā)器進(jìn)行可測(cè)性修改,默認(rèn)使用多路選擇器結(jié)構(gòu)的可測(cè)性觸發(fā)器,同時(shí)為用戶提供自選結(jié)構(gòu);
[0017]步驟四、將進(jìn)行觸發(fā)器替換之后的網(wǎng)表交給掃描鏈封裝模塊,使用Perl語言根據(jù)Verilog網(wǎng)表提供的觸發(fā)器信息,對(duì)具有可測(cè)性的觸發(fā)器進(jìn)行掃描鏈的連接,根據(jù)用戶的設(shè)定進(jìn)行自定義的連接,使所有觸發(fā)器都按照用戶的需求連接成若干條內(nèi)部掃描鏈;
[0018]步驟五、將掃描鏈連接之后的網(wǎng)表交給測(cè)試封裝模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊提供的端口信息為每個(gè)端口添加邊界掃描單元,并將邊界掃描單元與內(nèi)部掃描鏈連接構(gòu)成測(cè)試掃描鏈,同時(shí)為電路設(shè)計(jì)符合IEEE1500標(biāo)準(zhǔn)的測(cè)試Wrapper。
[0019]本發(fā)明的有益效果是:本發(fā)明提供了一種使用Perl輔助可測(cè)性設(shè)計(jì)人員對(duì)Verilog語言描述的數(shù)字電路進(jìn)行自動(dòng)化可測(cè)性設(shè)計(jì)的框架和方法。Verilog語言是一種硬件描述語言可以用于數(shù)字電路的設(shè)計(jì),已經(jīng)被數(shù)字電路人員廣泛使用,Verilog語言的存儲(chǔ)文件是文本格式。Perl語言是一種可以非常方便的處理文本格式文件的語言。使用Perl語言對(duì)Verilog語言描述的電路進(jìn)行修改是最好的選擇。一般來說,電路在設(shè)計(jì)過程中可以用Verilog語言描述的網(wǎng)表(以下稱為Verilog網(wǎng)表)形式予以表達(dá),可測(cè)性設(shè)計(jì)的過程就是對(duì)這個(gè)網(wǎng)表進(jìn)行修改,以實(shí)現(xiàn)電路的可測(cè)性設(shè)計(jì),所以選用Perl語言編程實(shí)現(xiàn)。本發(fā)明能輔助可測(cè)性設(shè)計(jì)人員完成可測(cè)性設(shè)計(jì)的自動(dòng)化可測(cè)性設(shè)計(jì),為可測(cè)性設(shè)計(jì)人員提供便捷的實(shí)現(xiàn)過程,提高電路可測(cè)性設(shè)計(jì)的效率和正確性,增加電路的可測(cè)性和可靠性,同時(shí)降低電路的測(cè)試成本。本發(fā)明完全適于集成電路的可測(cè)性設(shè)計(jì)?!緦@綀D】
【附圖說明】
[0020]圖1為本發(fā)明的所述系統(tǒng)的構(gòu)架框圖。
【具體實(shí)施方式】
[0021]如圖1所示:
[0022]整個(gè)使用Perl語言對(duì)Verilog網(wǎng)表進(jìn)行自動(dòng)化可測(cè)性設(shè)計(jì)的框架如圖1所示,有
5個(gè)大模塊組成,包括Verilog網(wǎng)表解析模塊,電路層次展開模塊,觸發(fā)器替換模塊,掃描鏈連接模塊,測(cè)試封裝模塊。
[0023]Verilog網(wǎng)表解析模塊完成對(duì)待進(jìn)行可測(cè)性設(shè)計(jì)的電路網(wǎng)表的解析過程,獲得必要的信息;電路層次展開模塊完成對(duì)使用自頂向下方式設(shè)計(jì)的電路的展開過程,使電路網(wǎng)表以底層元件的方式直接描述;觸發(fā)器替換模塊完成不可測(cè)觸發(fā)器的替換過程,使其成為具有可測(cè)性的觸發(fā)器;掃描鏈連接模塊完成掃描鏈的連接;測(cè)試封裝模塊完成對(duì)最后的測(cè)試封裝。
[0024]—種使用Perl語言對(duì)Verilog網(wǎng)表進(jìn)行自動(dòng)化可測(cè)性設(shè)計(jì)的框架,包括Verilog網(wǎng)表解析模塊,電路層次展開模塊,觸發(fā)器替換模塊,掃描鏈連接模塊,測(cè)試封裝模塊,其特征在于Verilog網(wǎng)表解析模塊會(huì)對(duì)要進(jìn)行可測(cè)性設(shè)計(jì)的電路進(jìn)行分析得到必要的信息并輸出給其他的所有模塊:將電路的結(jié)構(gòu)信息送給電路層次展開模塊,然后電路層次模塊會(huì)據(jù)此信息將層次化的電路結(jié)構(gòu)展開成由最底層單元直接構(gòu)成的電路結(jié)構(gòu),同樣以Verilog的形式輸出;將電路中使用的觸發(fā)器的詳細(xì)情況送給觸發(fā)器替換模塊,然后觸發(fā)器替換模塊會(huì)據(jù)此信息將電路層次展開模塊輸出的網(wǎng)表文件中的所有觸發(fā)器替換成可測(cè)性的觸發(fā)器,并以Verilog語言格式輸出替換后的電路描述文件;將電路的觸發(fā)器信息傳遞給掃描鏈連接模塊,掃描鏈連接模塊會(huì)根據(jù)這些信息將觸發(fā)器替換模塊輸出電路中的可測(cè)性觸發(fā)器按要求連接成內(nèi)部掃描鏈,同時(shí)將連接后的電路以Verilog語言形式輸出,并將內(nèi)部掃描鏈連接信息輸出;將電路的端口信息送給測(cè)試封裝模塊,測(cè)試封裝模塊根據(jù)此信息以及內(nèi)部掃描鏈連接模塊輸出的掃描鏈連接信息,添加邊界掃描單元,并按照用戶要求將邊界掃描單元與內(nèi)部掃描鏈連接,構(gòu)成測(cè)試掃描鏈,同時(shí)為電路加上IEEE1500標(biāo)準(zhǔn)的測(cè)試Wrapper0
[0025]使用Perl語言對(duì)使用Verilog網(wǎng)表所描述的電路進(jìn)行可測(cè)性設(shè)計(jì)的方法分為5個(gè)步驟
[0026]第一步將待可測(cè)性設(shè)計(jì)的電路網(wǎng)表交給Verilog網(wǎng)表解析模塊,使用Perl語言分析電路的層次結(jié)構(gòu),包括詳細(xì)的電路模塊的調(diào)用關(guān)系J^FVerilog網(wǎng)表,獲得電路中使用的觸發(fā)器信息,包括種類、數(shù)量和位置;獲得電路的端口信息。
[0027]第二步將待可測(cè)性設(shè)計(jì)的網(wǎng)表交給電路層次展開模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊輸出的電路層次信息,將電路展開成由最底層元件直接構(gòu)成的電路,同時(shí)電路的功能不變只在表現(xiàn)形式上有變化。
[0028]第三步將展開后的網(wǎng)表交給觸發(fā)器替換模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊輸出的觸發(fā)器信息對(duì)所有觸發(fā)器進(jìn)行可測(cè)性修改,默認(rèn)使用多路選擇器結(jié)構(gòu)的可測(cè)性觸發(fā)器,同時(shí)為用戶提供自選結(jié)構(gòu)。[0029]第四步將進(jìn)行觸發(fā)器替換之后的網(wǎng)表交給掃描鏈封裝模塊,使用Perl語言根據(jù)Verilog網(wǎng)表提供的觸發(fā)器信息,對(duì)具有可測(cè)性的觸發(fā)器進(jìn)行掃描鏈的連接,在這里可以根據(jù)用戶的設(shè)定進(jìn)行自定義的連接,使所有觸發(fā)器都按照用戶的需求連接成若干條內(nèi)部掃描鏈。
[0030]第五步將掃描鏈連接之后的網(wǎng)表交給測(cè)試封裝模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊提供的端口信息為每個(gè)端口添加邊界掃描單元,并將邊界掃描單元與內(nèi)部掃描鏈連接構(gòu)成測(cè)試掃描鏈,同時(shí)為電路設(shè)計(jì)符合IEEE1500標(biāo)準(zhǔn)的測(cè)試Wrapper。
[0031]實(shí)施例:
[0032]以一個(gè)例子作為具體說明,以下為一個(gè)Verilog描述的電路網(wǎng)表,僅供舉例使用,
并無實(shí)際功能。
[0033]
module A (CLK, D2, Q?)
[0034]`
【權(quán)利要求】
1.一種使用Perl語言對(duì)電路Verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的系統(tǒng),其特征在于:所述系統(tǒng)包括: Verilog網(wǎng)表解析模塊:用于完成對(duì)待進(jìn)行可測(cè)性設(shè)計(jì)的電路網(wǎng)表的解析過程,獲得電路的結(jié)構(gòu)信息、觸發(fā)器信息、端口信息,并將電路的結(jié)構(gòu)信息輸出給電路層次展開模塊、電路的觸發(fā)器信息輸出給觸發(fā)器替換模塊和掃描鏈連接模塊、電路的端口信息輸出給測(cè)試封裝模塊; 電路層次展開模塊:用于讀取的電路的結(jié)構(gòu)信息并根據(jù)該信息將層次化的電路結(jié)構(gòu)展開成由最底層單元直接構(gòu)成的電路結(jié)構(gòu)以Verilog的形式輸出;還用于將電路中使用的觸發(fā)器的詳細(xì)情況送給觸發(fā)器替換模塊,完成對(duì)使用自頂向下方式設(shè)計(jì)的電路的展開過程,使電路網(wǎng)表以底層元件的方式直接描述; 觸發(fā)器替換模塊:用于讀取的電路的觸發(fā)器信息并根據(jù)該信息將電路層次展開模塊輸出的網(wǎng)表文件中的所有觸發(fā)器替換成可測(cè)性的觸發(fā)器,并以Verilog語言格式輸出替換后的電路描述文件;還用于將電路的觸發(fā)器信息傳遞給掃描鏈連接模塊;從而完成不可測(cè)觸發(fā)器的替換過程,使其成為具有可測(cè)性的觸發(fā)器; 掃描鏈連接模塊:用于讀取的電路的觸發(fā)器信息并根據(jù)該信息將觸發(fā)器替換模塊輸出電路中的可測(cè)性觸發(fā)器按要求連接成內(nèi)部掃描鏈,同時(shí)將連接后的電路以Verilog語言形式輸出,并將內(nèi)部掃描鏈連接信息輸出給測(cè)試封裝模塊;完成掃描鏈的連接; 測(cè)試封裝模塊:用于讀取的電路的端口信息并根據(jù)該信息以及內(nèi)部掃描鏈連接模塊輸出的掃描鏈連接信息,添加邊界掃描單元,并按照用戶要求將邊界掃描單元與內(nèi)部掃描鏈連接,構(gòu)成測(cè)試掃描鏈,同時(shí)為電路加上IEEE1500標(biāo)準(zhǔn)的測(cè)試Wrapper,完成對(duì)最后的測(cè)試封裝。
2.一種使用Perl語言對(duì)電路verilog網(wǎng)表描述進(jìn)行可測(cè)性設(shè)計(jì)的方法,其特征在于:所述方法包括: 步驟一、將待可測(cè)性設(shè)計(jì)的電路網(wǎng)表交給Verilog網(wǎng)表解析模塊,使用Perl語言分析電路的層次結(jié)構(gòu),包括詳細(xì)的電路模塊的調(diào)用關(guān)系J^FVerilog網(wǎng)表,獲得電路中使用的觸發(fā)器信息,包括種類、數(shù)量和位置;獲得電路的端口信息; 步驟二、將待可測(cè)性設(shè)計(jì)的網(wǎng)表交給電路層次展開模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊輸出的電路層次信息,將電路展開成由最底層元件直接構(gòu)成的電路,同時(shí)電路的功能不變只在表現(xiàn)形式上有變化; 步驟三、將展開后的網(wǎng)表交給觸發(fā)器替換模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊輸出的觸發(fā)器信息對(duì)所有觸發(fā)器進(jìn)行可測(cè)性修改,默認(rèn)使用多路選擇器結(jié)構(gòu)的可測(cè)性觸發(fā)器,同時(shí)為用戶提供自選結(jié)構(gòu); 步驟四、將進(jìn)行觸發(fā)器替換之后的網(wǎng)表交給掃描鏈封裝模塊,使用Perl語言根據(jù)Verilog網(wǎng)表提供的觸發(fā)器信息,對(duì)具有可測(cè)性的觸發(fā)器進(jìn)行掃描鏈的連接,根據(jù)用戶的設(shè)定進(jìn)行自定義的連接,使所有觸發(fā)器都按照用戶的需求連接成若干條內(nèi)部掃描鏈; 步驟五、將掃描鏈連接之后的網(wǎng)表交給測(cè)試封裝模塊,使用Perl語言根據(jù)Verilog網(wǎng)表解析模塊提供的端口信息為每個(gè)端口添加邊界掃描單元,并將邊界掃描單元與內(nèi)部掃描鏈連接構(gòu)成測(cè)試掃描鏈,同時(shí)為電路設(shè)計(jì)符合IEEE1500標(biāo)準(zhǔn)的測(cè)試Wrapper。
【文檔編號(hào)】G06F9/45GK103699422SQ201310726411
【公開日】2014年4月2日 申請(qǐng)日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】俞洋, 楊智明, 彭喜元, 陳誠 申請(qǐng)人:哈爾濱工業(yè)大學(xué)