當前位置:編程學習大全網 - 編程語言 - 如何用Verilog HDL語言實現Viterbi算法?

如何用Verilog HDL語言實現Viterbi算法?

Verilog HDL是壹種硬件描述語言,用於從算法級、門級到開關級的多種抽象設計層次的數字系統建模。被建模的數字系統對象的復雜性可以介於簡單的門和完整的電子數字系統之間。數字系統能夠按層次描述,並可在相同描述中顯式地進行時序建模。

Verilog HDL 語言具有下述描述能力:設計的行為特性、設計的數據流特性、設計的結構組成以及包含響應監控和設計驗證方面的時延和波形產生機制。所有這些都使用同壹種建模語言。此外,Verilog HDL語言提供了編程語言接口,通過該接口可以在模擬、驗證期間從設計外部訪問設計,包括模擬的具體控制和運行。

Verilog HDL語言不僅定義了語法,而且對每個語法結構都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進行驗證。語言從C編程語言中繼承了多種操作符和結構。Verilog HDL提供了擴展的建模能力,其中許多擴展最初很難理解。但是,Verilog HDL語言的核心子集非常易於學習和使用,這對大多數建模應用來說已經足夠。當然,完整的硬件描述語言足以對從最復雜的芯片到完整的電子系統進行描述。

歷史

Verilog HDL語言最初是於1983年由Gateway Design Automation公司為其模擬器產品開發的硬件建模語言。那時它只是壹種專用語言。由於他們的模擬、仿真器產品的廣泛使用,Verilog HDL 作為壹種便於使用且實用的語言逐漸為眾多設計者所接受。在壹次努力增加語言普及性的活動中,Verilog HDL語言於1990年被推向公眾領域。 Open Verilog International (OVI)是促進Verilog發展的國際性組織。1992年, OVI決定致力於推廣Verilog OVI標準成為IEEE標準。這壹努力最後獲得成功,Verilog 語言於1995年成為IEEE標準,稱為IEEE Std 1364-1995。完整的標準在Verilog硬件描述語言參考手冊中有詳細描述。

主要能力

下面列出的是Verilog硬件描述語言的主要能力:

* 基本邏輯門,例如and、or和nand等都內置在語言中。

* 用戶定義原語(UDP)創建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時序邏輯原語。

* 開關級基本結構模型,例如pmos 和nmos等也被內置在語言中。

* 提供顯式語言結構指定設計中的端口到端口的時延及路徑時延和設計的時序檢查。

* 可采用三種不同方式或混合方式對設計建模。這些方式包括:行為描述方式—使用過程化結構建模;數據流方式—使用連續賦值語句方式建模;結構化方式—使用門和模塊實例語句描述建模。

* Verilog HDL中有兩類數據類型:線網數據類型和寄存器數據類型。線網類型表示構件間的物理連線,而寄存器類型表示抽象的數據存儲元件。

* 能夠描述層次設計,可使用模塊實例結構描述任何層次。

* 設計的規模可以是任意的;語言不對設計的規模(大小)施加任何限制。

* Verilog HDL不再是某些公司的專有語言而是IEEE標準。

* 人和機器都可閱讀Verilog 語言,因此它可作為EDA的工具和設計者之間的交互語言。

* Verilog HDL語言的描述能力能夠通過使用編程語言接口(PLI)機制進壹步擴展。PLI是允許外部函數訪問Verilog 模塊內信息、允許設計者與模擬器交互的例程集合。

* 設計能夠在多個層次上加以描述,從開關級、門級、寄存器傳送級(RTL)到算法級,包括進程和隊列級。

* 能夠使用內置開關級原語在開關級對設計完整建模。

* 同壹語言可用於生成模擬激勵和指定測試的驗證約束條件,例如輸入值的指定。

* Verilog HDL 能夠監控模擬驗證的執行,即模擬驗證執行過程中設計的值能夠被監控和顯示。這些值也能夠用於與期望值比較,在不匹配的情況下,打印報告消息。

* 在行為級描述中,Verilog HDL不僅能夠在RTL級上進行設計描述,而且能夠在體系結構級描述及其算法級行為上進行設計描述。

* 能夠使用門和模塊實例化語句在結構級進行結構描述。

* Verilog HDL 的混合方式建模能力,即在壹個設計中每個模塊均可以在不同設計層次上建模。

* Verilog HDL 還具有內置邏輯函數,例如&(按位與)和|(按位或)。

* 對高級編程語言結構,例如條件語句、情況語句和循環語句,語言中都可以使用。

* 可以顯式地對並發和定時進行建模。

* 提供強有力的文件讀寫能力。

* 語言在特定情況下是非確定性的,即在不同的模擬器上模型可以產生不同的結果;例如,事件隊列上的事件順序在標準中沒有定義。

  • 上一篇:汽車上的EBD,DSC,TSC,EBA,VIS是什麽意思啊?
  • 下一篇:C++程序設計
  • copyright 2024編程學習大全網