)
筆者也正在學習參考資料并進行個人解讀后續(xù)應(yīng)該會添加例子分享如有錯誤請不吝賜教。WGL波形生成語言—新手入門學習二WGL波形生成語言—新手入門學習三WGL波形生成語言—新手快速入門—導航目錄一、介紹二、WGL 的適用場景三、WGL 與 Wavemaker四、WGL 語言規(guī)范1、WGL 語法符號規(guī)范2、注釋3、Identifiers4、Numbers5、Reserved Words6、Strings???????1WGLWaveform Generation Language本質(zhì)一種文本語言ASCII 格式用來描述WDB里的數(shù)據(jù)。作用可以用文本編輯器修改波形數(shù)據(jù)庫里的內(nèi)容。能修改 WaveMaker 編輯器看不到的部分比如 ATE 專用字段??梢杂脕砜缙脚_遷移 WDB 或從 CAE 輸出生成 WDB。特點自由格式每行最長 512 個字符。支持宏、include 文件、注釋、annotations 等。關(guān)鍵字不區(qū)分大小寫但用戶自定義名字大小寫敏感。二進制模式文件中不能有普通注釋。簡單理解WGL 就像波形數(shù)據(jù)庫的“源碼”文本版。2WDBWaveform DataBase本質(zhì)一個存儲波形數(shù)據(jù)的數(shù)據(jù)庫文件。作用WaveMaker 和 TDS 系統(tǒng)使用它來控制測試波形、信號、時序等。保存信號名稱、方向、波形軌跡、TimePlate時序模板、事件數(shù)據(jù)等信息。特點二進制和文本兩種形式通常用 WGL 文本編輯然后再轉(zhuǎn)換成 WDB。不是跨平臺可移植的除非通過 WGL 導出/導入。簡單理解WDB 是波形數(shù)據(jù)庫的“成品”機器和測試設(shè)備直接用它工作。3WaveMaker本質(zhì)圖形化工具/編輯器用來查看、編輯 WDB。作用用圖形界面生成、修改波形數(shù)據(jù)庫。可以創(chuàng)建 TimePlate時序模板、定義信號、設(shè)置波形軌跡。限制有些 ATE 專用字段或底層屬性在 WaveMaker 中看不到。復(fù)雜批量修改不方便需要用 WGL 文本編輯。簡單理解WaveMaker 是 WDB 的“可視化編輯器”好用但功能有限制。WGL (文本源碼) → WGL In Converter → WDB (機器/測試可用)WDB → WGL Out Converter → WGL (可編輯文本)WaveMaker ←→ WDB (可視化編輯)WaveMaker主要是可視化操作適合日常編輯。WGL是底層文本操作適合高級修改、遷移、批量處理。WDB是最終文件直接被測試設(shè)備或系統(tǒng)使用。一、介紹Waveform Generation LanguageWGL是一種數(shù)據(jù)描述語言。它用于表示 Waveform DataBaseWDB中數(shù)據(jù)的可編輯 ASCII 形式使你能夠使用系統(tǒng)的文本編輯器來完全自定義該數(shù)據(jù)庫。二、WGL 的適用場景由于你可以通過 WaveMaker Browser 輕松地將現(xiàn)有的 TDS 標準事件格式SEF數(shù)據(jù)庫轉(zhuǎn)換為 WDB并且可以使用 WaveMaker 的編輯器來編輯新的或已有的數(shù)據(jù)庫因此你可能很少需要直接使用 WGL。然而WGL 能讓你修改 WDB 中某些 WaveMaker 編輯器無法訪問的部分。使用 WGL 可以做到1、在不同主機平臺之間轉(zhuǎn)移 WDB。否則 WDB 本身并不是可移植的。2、查看并編輯 WDB 中與 ATE自動化測試設(shè)備相關(guān)的部分。這些內(nèi)容無法通過 WaveMaker 的編輯器訪問。3、僅通過 WGL 創(chuàng)建一個 WDB。這樣即使用戶只有 TDS 的 WaveBridge 模塊、但沒有 WaveMaker也能使用生成的 WDB 來運行 WaveBridge。4、將 CAE 仿真生成的二進制模式數(shù)據(jù)作為輸入提供給 TDS。更多信息見 2-102 頁的Binary WGL。5、使用你喜歡的文本編輯器進行高級文本處理操作例如搜索替換。注意不要編輯包含二進制模式數(shù)據(jù)的 WGL 文件編輯器可能會刪除其中的空值模式位。WGL 被設(shè)計成與 TDS 的WGL In Converter和WGL Out Converter模塊配合使用。關(guān)于如何使用 WGL In Converter 和 WGL Out Converter 的詳細說明請參考《In Converters Guide》的第 15 章以及《Out Converters Guide》的第 16 章。三、WGL 與 Wavemaker由于 WGL 用來描述一個 WDB因此它的語言結(jié)構(gòu)必然反映 WDB 的組織方式。如果你曾經(jīng)使用 WaveMaker 的編輯器查看過 WDB你會很容易看出這種相似性。許多在 WaveMaker 編輯器中可見的實體例如 ATE Pin 和 DUT Pin 字段在 WGL 中都能輕松識別。不過WGL 中也有一些結(jié)構(gòu)與 ATE 相關(guān)而這些內(nèi)容在 WaveMaker 編輯器中是不可見的。WGL 的 Formats 程序塊就是這樣的一個例子。WaveMaker 編輯器與 WGL 程序結(jié)構(gòu)之間相似性的一個典型例子就是WaveMaker 的 Timing Editor。Timing Editor 允許你編輯一個 TDS 的時序模板TimePlate。TimePlate 中包含若干個槽位用于放置信號以 signal、group 或 bus 名稱標識、信號方向指示以及波形軌跡。槽位就是輸入信號名稱的區(qū)域。圖 2-1 展示了名為Fetch的 TimePlate 在 Timing Editor 中的樣子。你會注意到 TimePlate 的名字、信號名稱、信號方向以及波形軌跡所有這些實體都可以通過 WGL 來描述。所謂timing channel是一種抽象實體包含信號、組或總線名稱、方向信息以及事件和時序數(shù)據(jù)。下面的示例展示了 TimePlate Fetch 在 WGL 中的對應(yīng)描述。請注意TimePlate 的名稱、信號名稱、方向、波形軌跡以及通道都與 Timing Editor 中顯示的實體一一對應(yīng)。四、WGL 語言規(guī)范WGL 程序是 WDB 內(nèi)容的 ASCII 文本表示形式。該語言是自由格式的多個空白字符會被視為一個空白字符換行符會被忽略并且每行長度限制為512 個字符。WGL 的保留字不區(qū)分大小寫關(guān)鍵詞可以任意大小寫混用。但對于用戶自定義的名稱和 pattern 狀態(tài)字符大小寫是有區(qū)別的。該語言使用 ASCII 可打印字符作為合法輸入字符。WGL 支持宏、include 文件、行內(nèi)注釋、編譯后注釋等特性以及許多編程語言常見的操作。格式自由每行最多512個字符關(guān)鍵字不區(qū)分大小寫1、WGL 語法符號規(guī)范在描述 WGL 語法時使用了 Backus-Naur 范式BNF的一種變體兩個冒號加等號 (::)表示一個語法類別與其語法規(guī)則之間的關(guān)系。(::是“被定義為”的意思)雙引號“ ”或粗體表示保留字、印刷符號或參數(shù)的字面使用。如果要字面使用雙引號則用單引號‘ ’將其括起來。尖括號 表示使用用戶自定義名稱、整數(shù)或浮點數(shù)。等號表示對 WGL 保留字或詞法原語的定義。方括號[ ]表示可選語法出現(xiàn)次數(shù)為 0 次或 1 次?;ɡㄌ杮 }表示對括號內(nèi)語法的不定次數(shù)重復(fù)0 到 n 次。這種表示法也意味著括號內(nèi)的語法是可選的因為重復(fù) 0 次即表示可選。豎線|表示語法的不同選擇。圓括號( )表示語法選項的分組。二進制模式文件使用 WGL 語法表示法同時還包含一些額外的符號表示。詳細內(nèi)容見第 2-107 頁的Binary File Format。在文本中對 WGL 語法元素使用斜體表示更高級的 BNF 結(jié)構(gòu)。這些結(jié)構(gòu)會在對應(yīng)的 BNF 定義中展開為完整定義。例如對FormatDecl的引用將在相應(yīng)的 BNF 產(chǎn)生式中如下顯示用戶自定義的標識符例如TDSstate在第 2-134 頁的WGL 術(shù)語詞匯表中有定義。注意不要將 BNF 中使用的大括號{}與 WGL 中的相同符號混淆。BNF 使用大括號表示括號內(nèi)動作的重復(fù)而 WGL 使用大括號來標記數(shù)據(jù)庫注釋。2、注釋和其他編程語言一樣你可以在 WGL 程序中添加解釋性注釋以增強功能上的清晰性。這些注釋以井號#開頭并且在運行 WGL In Converter 時不會被包含到 WDB 中。注釋可以插入到 WGL 程序的任何部分但不能插入到 WGL 注釋中。見第 2-64 頁的Annotations。在 WGL 程序中插入注釋的方法是輸入一個井號#后跟文本字符串。該行中從井號開始直到行結(jié)束回車符為止的所有字符都屬于注釋內(nèi)容。下面將給出 Comment 特性的完整 BNF 語法表示。WGL 程序中注釋的示例二進制模式文件不能包含注釋只能包含注釋標記annotations。3、Identifiers標識符是信號、總線、組、TimePlate、格式、時序發(fā)生器、模式、子程序等的字母數(shù)字名稱。標識符必須以字母開頭并且不能包含空白字符如空格、制表符、換行符或下列分隔符字符以字母為開頭不能含有空格和分界符標識符不能與任何 WGL 保留字沖突。任何包含特殊字符或保留字的名稱都必須用雙引號“ ”括起來作為字符串輸入。在本章的 WGL 語法描述中標識符用尖括號 括起。不能和保留字沖突標識符包含在中4、Numbers除非另有說明用戶自定義的數(shù)值都是整數(shù)范圍從零到系統(tǒng)架構(gòu)可表示的最大整數(shù)。任何例外情況會在本章相應(yīng)的 WGL 語法描述中注明。在本章的 WGL 語法描述中用戶自定義的數(shù)值用尖括號 括起。5、Reserved WordsWGL將其特定詞匯保留為專用語言集合數(shù)據(jù)描述與過程指令均可由此生成。這些保留詞匯僅能以符合語法規(guī)范的形式出現(xiàn)在WGL語句中。以下為WGL保留字列表與常規(guī)編程語言不同WGL無法限制或過濾保留字的使用。若設(shè)計中的信號名稱或任何其他應(yīng)用特定名稱與WGL保留字沖突則必須將該信號名稱用雙引號“ ”括起以使其與保留字區(qū)分。此操作需在程序中出現(xiàn)該信號名稱的所有位置全程執(zhí)行。當用戶定義的標識符和關(guān)鍵字重復(fù)時可以用雙引號6、Strings字符串是指由雙引號“ ”包圍的任意字符序列。在字符串中若需使用雙引號必須在每個雙引號前加上反斜杠\若需使用反斜杠則必須在每個反斜杠前再加一個反斜杠。例如字符串\design“1”\對應(yīng)的WGL語法為“\\design\“1\”\\”