具有狀態(tài)的串行比特流正則表達(dá)式的制作方法
【專利說明】
[0001] 相關(guān)申請(qǐng)數(shù)據(jù) 本申請(qǐng)要求享有2014年8月4日提交的序列號(hào)為62/033, 036的美國(guó)臨時(shí)專利申請(qǐng)的 權(quán)益,所述專利申請(qǐng)以其全部?jī)?nèi)容通過引用并入于此。
技術(shù)領(lǐng)域
[0002] 本發(fā)明涉及測(cè)試和測(cè)量?jī)x器,并且更具體地涉及具有對(duì)串行比特流的正則表達(dá)式 處理的測(cè)試和測(cè)量?jī)x器。
【背景技術(shù)】
[0003] 正則表達(dá)式可以被使用在分析字符流中。例如,諸如Perl和AWK之類的程序基于 正則表達(dá)式模式匹配。正則表達(dá)式可以被用于定義字符的匹配序列。然而,對(duì)已經(jīng)被轉(zhuǎn)換 成字節(jié)、字或其他多比特格式的數(shù)據(jù)執(zhí)行這樣的正則表達(dá)式匹配。相反地,串行比特流未被 分組成這樣的多比特格式。
[0004] 申請(qǐng)人的2010年11月18日提交的題為"SERIALBITSTREAMRE⑶LAR EXPRESSIONENGINE"的序列號(hào)為12/949, 703的在先美國(guó)專利申請(qǐng)描述了可以如何將正 則表達(dá)式應(yīng)用于串行比特流。并且通過使用2010年11月18日提交的題為"SERIALBIT STREAMREGULAREXPRESSIONENGINE"的序列號(hào)為12/949, 703的專利美國(guó)專利申請(qǐng)中描 述的機(jī)制,一般可能實(shí)現(xiàn)任何期望的正則表達(dá)式。但是以此方式完整描述正則表達(dá)式可能 是復(fù)雜的。為了比較,在計(jì)算機(jī)科學(xué)中任何程序可以以機(jī)器語言來編寫(使用比特〇和1)。 但是以機(jī)器語言的復(fù)雜計(jì)算機(jī)程序的實(shí)現(xiàn)方式在最好的情況下是非常冗長(zhǎng)的:在最差的 情況下,保持正確實(shí)際上是不可能的。通過以匯編語言或更高階的編程語言(例如COBOL、 Fortran或C)編寫程序,實(shí)現(xiàn)方式和調(diào)試被簡(jiǎn)化。
[0005] 注意的是,更高階的編程語言并未向編程者給出實(shí)現(xiàn)機(jī)器語言不能支持的任何程 序的能力。如果有任何的話,相反情況為真:可能存在可以以機(jī)器語言實(shí)現(xiàn)的指令序列,其 在更高階的編程語言中沒有等同物。但是簡(jiǎn)化的實(shí)現(xiàn)方式使更高階的編程語言的用戶在以 機(jī)器語言進(jìn)行編程期間更有利。
【發(fā)明內(nèi)容】
[0006] 測(cè)試和測(cè)量?jī)x器包括用戶接口和控制器??刂破骺梢越邮沾斜忍亓鞑⑶覍⒄齽t 表達(dá)式應(yīng)用于串行比特流。正則表達(dá)式可以包括使用第二正則表達(dá)式所定義的狀態(tài)信息。 控制器然后可以通過用戶接口呈現(xiàn)將正則表達(dá)式應(yīng)用于串行比特流的結(jié)果。
【附圖說明】
[0007] 圖1是根據(jù)本發(fā)明的實(shí)施例的具有正則表達(dá)式引擎的測(cè)試和測(cè)量?jī)x器的框圖。
[0008] 圖2是根據(jù)本發(fā)明的實(shí)施例的具有數(shù)字化器前端的圖1的測(cè)試和測(cè)量?jī)x器的框 圖。
[0009] 圖3圖示了根據(jù)本發(fā)明的實(shí)施例的來自正則表達(dá)式引擎的波形、對(duì)應(yīng)的比特序列 以及匹配比特序列。
[0010] 圖4圖示了根據(jù)本發(fā)明的實(shí)施例的來自正則表達(dá)式引擎的波形、對(duì)應(yīng)的比特序 列、匹配比特序列以及對(duì)齊序列。
[0011] 圖5是根據(jù)本發(fā)明的實(shí)施例的具有觸發(fā)系統(tǒng)的測(cè)試和測(cè)量?jī)x器的框圖,所述觸發(fā) 系統(tǒng)具有正則表達(dá)式引擎。
[0012] 圖6是根據(jù)本發(fā)明的實(shí)施例的在觸發(fā)系統(tǒng)中具有正則表達(dá)式引擎的測(cè)試和測(cè)量 儀器的框圖。
[0013] 圖7圖示了根據(jù)本發(fā)明的實(shí)施例的來自正則表達(dá)式引擎的波形、對(duì)應(yīng)的比特序 列、匹配比特序列以及相關(guān)聯(lián)的數(shù)據(jù)。
[0014] 圖8是根據(jù)本發(fā)明的實(shí)施例的具有正則表達(dá)式引擎的測(cè)試和測(cè)量?jī)x器的用戶接 口的示例。
[0015] 圖9是根據(jù)本發(fā)明的實(shí)施例的具有正則表達(dá)式引擎的測(cè)試和測(cè)量?jī)x器的用戶接 口的另一不例。
[0016] 圖10示出了根據(jù)本發(fā)明的實(shí)施例的具有正則表達(dá)式引擎和狀態(tài)信息的測(cè)試和測(cè) 量?jī)x器的框圖。
[0017] 圖11示出了將狀態(tài)定義為邏輯表達(dá)式的圖10的狀態(tài)標(biāo)識(shí)邏輯。
[0018] 圖12示出了將狀態(tài)定義為外部函數(shù)的圖10的狀態(tài)標(biāo)識(shí)邏輯。
[0019] 圖13示出了將第二正則表達(dá)式應(yīng)用于第一正則表達(dá)式的輸出的圖10的正則表達(dá) 式引擎。
[0020] 圖14示出了將多于一個(gè)正則表達(dá)式應(yīng)用于串行比特流的圖10的正則表達(dá)式引 擎。
[0021] 圖15示出了取得具有狀態(tài)信息的正則表達(dá)式并且將其編譯到用于使用在圖10的 測(cè)試和測(cè)量?jī)x器中的正則表達(dá)式引擎中的編譯器。
[0022] 圖16A-16B示出了根據(jù)本發(fā)明的實(shí)施例的用于使用具有狀態(tài)信息的正則表達(dá)式 的過程的流程圖。
[0023] 圖17示出了根據(jù)本發(fā)明的實(shí)施例的用于將正則表達(dá)式編譯到用于使用在正則表 達(dá)式引擎中的設(shè)計(jì)中的過程的流程圖。
【具體實(shí)施方式】
[0024] 本公開描述了具有用于串行比特流的正則表達(dá)式引擎的測(cè)試和測(cè)量?jī)x器的實(shí)施 例。
[0025] 圖1是根據(jù)本發(fā)明的實(shí)施例的具有正則表達(dá)式引擎的測(cè)試和測(cè)量?jī)x器的框圖。該 儀器包括配置成接收串行比特流10的控制器12??梢砸愿鞣N方式生成串行比特流10。例 如,儀器可以是配置成將輸入信號(hào)數(shù)字化的示波器。數(shù)字化輸入信號(hào)(其可以被表示為數(shù)字 化模擬信號(hào))可以表示數(shù)字?jǐn)?shù)據(jù)。也就是說,數(shù)字化輸入信號(hào)可以表示數(shù)據(jù)流的一系列比 特。串行比特流10可以是從數(shù)字化輸入信號(hào)中提取的這樣的一系列比特。
[0026] 在另一實(shí)施例中,該儀器可以是邏輯分析器。該邏輯分析器可以配置成比較輸入 信號(hào)與閾值以便為通道生成串行比特流。串行比特流10可以是來自邏輯分析器的通道的 這樣的比特流??梢陨纱斜忍亓鞯娜魏蝺x器可以包括如本文所描述的正則表達(dá)式引 擎。
[0027] 在實(shí)施例中,串行比特流10可以但不需要緊接在通過控制器12的處理之前被獲 取。例如,串行比特流10可以存儲(chǔ)在存儲(chǔ)器中。這樣的存儲(chǔ)器可以是獲取存儲(chǔ)器。在另一 示例中,串行比特流10可以存儲(chǔ)在非易失性存儲(chǔ)器中,該非易失性存儲(chǔ)器諸如是磁盤驅(qū)動(dòng) 器或其他大容量存儲(chǔ)設(shè)備。
[0028] 不管串行比特流10的源如何,控制器12都可以配置成接收串行比特流10。控制 器12可以是任何種類的電路。例如,數(shù)字信號(hào)處理器(DSP)、微處理器、可編程邏輯器件、 通用處理器、或具有如所期望的適當(dāng)外圍設(shè)備的其他處理系統(tǒng),可以用作控制器12來實(shí)現(xiàn) 正則表達(dá)式引擎13的功能。在完整集成與完全分立的組件之間的任何變型可以用于實(shí)現(xiàn) 控制器12。正則表達(dá)式引擎13表示控制器12的功能,其將正則表達(dá)式應(yīng)用于串行比特流 10。
[0029] 控制器12被耦合到用戶接口 14。用戶接口 14可以包括任何種類的接口。例如, 用戶接口 14可以包括輸入接口,諸如按鈕、旋鈕、滑塊、鍵盤、指示設(shè)備等等。用戶接口 14 可以包括輸出接口,諸如顯示器、燈、揚(yáng)聲器等等。用戶接口 14可以包括輸入/輸出接口, 諸如通信接口、觸摸屏等等。任何種類的用戶接口或這樣的接口的組合都可以被用作用戶 接口。
[0030] 控制器12可以配置成響應(yīng)于將正則表達(dá)式應(yīng)用于串行比特流10而通過用戶接 口呈現(xiàn)所獲取的數(shù)據(jù)(其也可以被稱為"輸出數(shù)據(jù)",因?yàn)?所獲取的數(shù)據(jù)"是從測(cè)試和測(cè)量 儀器輸出的)。在實(shí)施例中,所獲取的數(shù)據(jù)可以是串行比特流10本身。然而,在其他實(shí)施例 中,所獲取的數(shù)據(jù)和串行比特流10可以是不同的。例如,如在下文將進(jìn)一步詳細(xì)描述的那 樣,正則表達(dá)式的串行比特流中的匹配可以被用于觸發(fā)將其他數(shù)據(jù)作為所獲取的數(shù)據(jù)而被 獲取。
[0031] 正則表達(dá)式引擎13可以被用于影響串行比特流10的各種呈現(xiàn)。例如,如在下文 將進(jìn)一步詳細(xì)描述的那樣,數(shù)據(jù)可以與正則表達(dá)式相關(guān)聯(lián)。數(shù)據(jù)可以表示在匹配比特序列 中編碼的符號(hào)。可以利用符號(hào)來將串行比特流10呈現(xiàn)為覆蓋圖、單獨(dú)的符號(hào)等等。
[0032] 在另一示例中,正則表達(dá)式引擎13可以被用于搜索、標(biāo)記或以其他方式標(biāo)識(shí)串行 比特流10、相關(guān)聯(lián)的數(shù)據(jù)中的模式,等等。例如,在示波器上,可以針對(duì)特定比特序列來搜索 表示所獲取的信號(hào)的數(shù)字化波形。數(shù)字化波形的相關(guān)聯(lián)的序列可以通過用戶接口來呈現(xiàn)。 可替換地,可以標(biāo)記相關(guān)聯(lián)的序列。
[0033] 在另一示例中,正則表達(dá)式引擎13可以被用于過濾所獲取的數(shù)據(jù)。例如,如在下 文將進(jìn)一步詳細(xì)描述的那樣,正則表達(dá)式可以定義分組結(jié)構(gòu)和僅匹配于來自特定設(shè)備的分 組的匹配值。數(shù)據(jù)的獲取可以被過濾為使得僅存儲(chǔ)匹配的獲取。
[0034] 在另一實(shí)施例中,正則表達(dá)式引擎13的輸出可以不僅僅是匹配。例如,串行比特 流10可以與所獲取的數(shù)字化波形相關(guān)聯(lián)。數(shù)字化波形可以被表示為值相對(duì)時(shí)間的關(guān)系。當(dāng) 匹配被輸出時(shí),可以將附加的數(shù)據(jù)(諸如相關(guān)聯(lián)的數(shù)字化波形內(nèi)的時(shí)間)添加到輸出。因此, 可以調(diào)節(jié)用戶接口 14以反映時(shí)間。
[0035] 圖2是根據(jù)本發(fā)明的實(shí)施例的具有數(shù)字化器前端的圖1的測(cè)試和測(cè)量?jī)x器的框 圖。數(shù)字化器20可以配置成將輸入信號(hào)22數(shù)字化以生成串行數(shù)據(jù)流10。
[0036] 盡管未圖示,但是每個(gè)數(shù)字化器26具有前置放大器、衰減器、濾波器和/或模擬通 道中所需要的其他模擬電路。因此,對(duì)數(shù)字化器26的輸入信號(hào)可以在數(shù)字化之前被放大、 衰減或以其他方式濾波。此外,數(shù)字化器26可以是能夠?qū)⑿盘?hào)數(shù)字化的任何種類的電路。 例如,數(shù)字化器26可以包括電路,諸如對(duì)相關(guān)聯(lián)的輸入信號(hào)進(jìn)行采樣所需要的追蹤和保持 電路、A/D轉(zhuǎn)換器、解復(fù)用器電路。
[0037] 圖3圖示了根據(jù)本發(fā)明的實(shí)施例的來自正則表達(dá)式引擎的波形、對(duì)應(yīng)的比特序列 和匹配比特序列。在實(shí)施例中,正則表達(dá)式語法可以被定義為:
在該示例中,匹配比特可以被定義為1、〇或無所謂(do-not-care)的X。正則表達(dá)式可 以繼之以正則表達(dá)式。可替換的正則表達(dá)式可以由OR"I"操作符來定義。一個(gè)或多個(gè)" + " 或零或多個(gè)操作符可以被用于潛在地定義重復(fù)的正則表達(dá)式。"? "操作符可以意指零 或一個(gè)在先的正則表達(dá)式。操作符后面的整數(shù)可以意指正則表達(dá)式的重復(fù)數(shù)目。括號(hào) 可以被用于對(duì)正則表達(dá)式或正則表達(dá)式系列進(jìn)行分組。盡管以上已經(jīng)描述了特定的語法, 但是實(shí)施例可以使用其他語法。特別地,下文將給出利用其他語法的另外的示例。此外,正 則表達(dá)式引擎13所使用的語法可以但不需要實(shí)現(xiàn)以上語法或以下語法的所有方面。
[0038] 使用以上語法作為示例,可以定義用于匹配的正則表達(dá)式。例如,"1010000110" 可以被定義為正則表達(dá)式。波形44和對(duì)應(yīng)的數(shù)字值46在圖3中被圖示??梢詫⒈忍匦蛄?40標(biāo)識(shí)為匹配,因?yàn)槠渚哂斜忍?1010000110"。然而,比特序列42將不匹配該序列。
[0039] 可替換的正則表達(dá)式可以被定義為"1010XX0110"。與以上示例相反,兩個(gè) 無所謂的"X"值被包括在該正則表達(dá)式中。因此,序列40和42二者匹配正則表達(dá)式 "1010XX0110"。
[0040] 圖4圖示了根據(jù)本發(fā)明的實(shí)施例的來自正則表達(dá)式引擎的波形、對(duì)應(yīng)的比特序 列、匹配比特序列以及對(duì)齊序列。在實(shí)施例中,正則表達(dá)式引擎13可以被配置成對(duì)齊串行 比特流10內(nèi)的操作。例如,諸如8b/10b之類的編碼技術(shù)可以定義可被用于對(duì)齊的特定一 個(gè)或多個(gè)比特序列。8b/10b編碼內(nèi)的序列"1100000"或"0011111"可以指示串行比特流內(nèi) 的10比特對(duì)齊。
[