波形描述語言(WDL,Waveform Description Language)是一種常用於描述軟體無線電系統需求規格的語言,它綜合了多個研究領域的原理而形成,可以用於解決定義和實現空中波形的設計技術和工具的不兼容性等問題。本小節將對WDL的起源、特點、開發和編譯方法等多個方面進行介紹。
基本介紹
- 中文名:波形描述語言
- 外文名:Waveform Description Language
- 套用學科:通信
WDL的起源,WDL的特點,WDL的開發,WDL的編譯,WDL的支撐環境,
WDL的起源
波形(Waveform)是指為了實現信息的無線傳輸而對信息所採取的一系列變化過程,包括無線通信雙方為實現信息傳輸而採用的所有協定。美軍在JTRS有關檔案中指出,JTRS必須兼容的波形包括SNCGARS、ESP、HAVEQUICKII、UHFSATCOM、增強位置報告系統(EPLRS)和Link16等。
由波形的定義可知,對於一種較複雜的波形來說,它包含了許多種變換,因此,它的實現需要許多硬體和軟體的參與。JTRS電台系列將分為3個階段的研製,每個階段都會增加新的波形性能。英國國防部正在資助Thales公司開展波形描述語言標準的研究,論述不同廠家的軟體無線電系統利用WDL波形軟體的可行性,定義未來的波形。英國還與美國、法國和德國一起組織了一個未來多頻段、多波形、模組化戰術電台(FM3TR)的四方工作組,專門解決軟體電台問題,如波形智慧財產權、波形描述語言和體系結構標準(包括美國的JTRS體系結構)、各實驗台之間演示公共小型軟體的可行性等問題。
WDL是綜合了多個成熟研究領域的原理而形成的一種實用描述語言。WDL的指導原則是按照逐層分解的原則,採用方塊圖和狀態圖,把需求逐層分解為越來越小的子需求,直至分解後的需求變得容易處理。WDL所採用的概念取自於多種不同的語言,其概念起源如圖1所示。
圖1WDL的概念起源
WDL的特點
WDL的實用性得益於層次性方塊圖和狀態圖的使用,以及對數據驅動互動和事件驅動互動的支持。多種互動形式的成功並存,得益於合理採用狀態圖進行的分析表達。而採用面向對象進行數據類型聲明,則可以支持高效的通信和靈活的計算。WDL的特點如下。
(1)WDL採用源於同步語言(如Esterel)的同步假設,可以提供確定的需求描述。在沿用Alloy和SDL等需求描述語言的基礎上,WDL探索出一種更容易讓人接受的數學表達方式。
(2)WDL需求只對行為進行層次化的分解。由於只在同一維上進行分解,故不存在由不同視點導致的相互矛盾。相比於WDL,在實現層採用UML時,由於視點不一致,類的繼承、對象靜態關係、動態訊息互動以及模組劃分之間會出現矛盾衝突。
(3)在類似SDL和Ptolemy的語言中,已經包含了許多WDL的概念。SDL中包含需求約束、類型以及類似狀態機一樣的層次性方塊圖。在Ptolemy的研究中,使用數據流進行計算環境下的DSP處理,數據流則採用了同步反應原理的方塊圖。這種方塊圖工具採用的是用戶自定義類型,可支持任意層次的狀態機和數據流。
(4)WDL集成了許多其他方法的概念,可提供足夠的表達能力以覆蓋所有的需求範圍,其強有力的參數化工具可支持真正的可重用需求規格庫。
(5)與SDL相比,WDL與其存在許多原理上的相似性,但WDL對任意層次的支持以及數據流、多重輸入等特性,使其在視點上產生了重大改變。如WDL圖的所有節點都是行為實體,而在SDL中,採用豐富的圖形符號對底層計算數據流描述時容易讓人產生混淆。
(6)與單純的方塊圖工具(如Cossap)相比,WDL的事件處理和狀態機可以實現頂層的需求描述,其數據類型有助於描述底層含義和高層訊息混合在一起的複雜需求。與Ptolemy相比,WDL又提供了必要的對需求的抽象表達,而不局限於某種實現工具。與Esterel相比,WDL提供的語義基礎是相同的,但WDL還提供Esterel所沒有的算法能力以支持程式性框架。
WDL的開發
WDL的開發是對系統從上而下進行行為分解,直至分解到葉節點,從而產生所需的需求規格。葉節點可以來自於已經存在的庫實體,或由用戶進行自定義。為了使需求能夠適應特定的目標環境,需要對其進行一系列細化約束步驟,使其能夠適應特定的目標環境。經過細化約束的需求規格即是WDL程式,WDL可以通過編譯,生成適合特定平台的執行檔及其配置檔案。WDL編譯器包含一個翻譯器,用於把WDL轉換成可以被標準編譯工具識別的格式。WDL的開發過程如圖2所示。
圖2WDL的開發過程
WDL的編譯
對於WDL,可以有許多不同的編譯路徑,這些編譯路徑有的較為簡單,有的較為複雜。常用的編譯路徑如下。
(1)直接彙編
直接彙編能夠從WDL中直接產生彙編語言碼,但這要求彙編程式具有用於每個數學操作和類型的結合模板及用於調度器的模板,還必須提供暫存器分配程式。這種編譯用於任何特定目標的執行,需要大量的程式工作,這是因為不同的目標需要提供不同的機器庫。對進一步深入目標的執行,直接彙編實現起來較為困難。
(2)高層次語言
將WDL轉化為高層次的語言更為容易一些,因為編譯器承擔了暫存器分配和大量相關數據類型分配的任務。這種方法的執行也要求有大量的程式工作。
(3)中級表示
大多數編譯器將源碼轉化為適於用來完成最佳化的中級表示,然後轉換為能夠在目標處理器上進行調度的暫存器傳輸形式。將WDL轉化為高層次語言是一種較為落後的方法,特別當編譯器具有矢量最佳化時,更為合適的方法是直接產生中級表示。
(4)行為傳輸
WDL指定每個數據類型要求的最小行為。為了可以使用傳統編譯器,WDL必須作出判斷,使得實際精確度被使用,支持每個暫存器傳輸更為一般化的行為描述編譯器。
(5)機器描述
可重定目標的編譯器使用機器描述來定位所要求的結構,基於這種機器描述的最佳化,比由直接連線到彙編的最佳化具有更高的優越性。
WDL的支撐環境
和其他計算機語言一樣,當有一個適宜的支撐開發環境時,WDL就會有更大的實用性。作為WDL的支撐環境,最基本的需求是對WDL規格進行圖形或文字編輯的能力。如果支撐環境的綜合能力更強一些,它還應該支持自動細化以及針對不同產品實現自動生成大量不同類型語言的代碼,以及提供調度可視化和切分工具。
有許多開發包都支持從方塊圖語言中自動生成代碼和仿真模型,通過一些適當的改造就可以用來支持WDL。如加利福尼亞大學伯克利分校開發的PtolemyII,它支持狀態圖和訊息流。只要進行一些額外的擴展,增加一些更加抽象的概念,PtolemyII就可以用於支持WDL。