Verilog-AMS

Verilog-AMSは、アナログ回路とディジタル回路の混在した回路の動作を定義するためのアナログおよびミックスドシグナル拡張を含むVerilogハードウェア記述言語の派生語である。

1. 解説
-----

これは、Verilog / SystemVerilog / VHDLのイベントベースのシミュレーターループを、アナログ領域の微分方程式を解く連続時間シミュレーターによって拡張したものでありる。アナログイベントはデジタルアクションをトリガーでき、その逆も可能である。

Verilog-AMS標準は、アナログおよび混合信号システムと集積回路の設計者が、システムとコンポーネントの高レベルの動作記述と構造記述をカプセル化するモジュールを作成して使用できるようにすることを目的として作成された。

Verilog-AMSは、ミックスドシグナル回路用の業界標準のモデリング言語である。連続時間とイベント駆動型の両方のモデリングセマンティクスを提供しており、アナログ、デジタル、およびアナログ/デジタル混合回路に適している。これは、非常に複雑なアナログ、ミックスドシグナル、およびRF集積回路の検証に適してる。

VerilogおよびVerilog/AMSは手続き型プログラミング言語ではなく、イベントベースのハードウェア記述言語である。そのため、並列アクションとイベントの定義と同期のための洗練された強力な言語機能を提供している。一方、HDLプログラムステートメントで定義された多くのアクションは並行して実行できる。ただし、Verilog / AMSは、シミュレータのVerilog Procedural Interfaceを使用して、ANSI C言語などの手続き型言語と組み合わせることもできる。これにより、テストスイートの実装が容易になり、レガシーコードまたはテストベンチ機器との対話が可能となる。

Verilog-AMS委員会の当初の意図は、アナログとデジタルの両方で単一の言語であったが、合併プロセスの遅れにより、 VerilogがSystemVerilogに進化してIEEEに移行したのに対し、Verilog-AMSはAccelleraのままとなっている。

2. コード例
-------

Verilog / AMSはVerilogデジタルHDLのスーパーセットであるため、デジタルドメインのすべてのステートメントはVerilogと同様に機能する。すべてのアナログパーツはVerilog-Aと同じように機能する。

次のVerilog-AMSのコード例は、デジタル信号によってトリガーされるアナログ処理の例であるDAC。 `include "constants.vams" `include "disciplines.vams" // Simple DAC model module dac_simple;

// Parameters parameter integer bits = 4 from [1:24]; parameter integer td = 1n from[0:inf); // Processing delay of the DAC

// Define input/output input clk, vref; input [bits-1:0] din; output aout;

//Define port types logic clk; logic [bits-1:0] din; electrical aout, vref;

// Internal variables real aout_new, ref; integer i;

// Change signal in the analog part analog begin @ begin // Change output only for rising clock edge

aout_new = 0; ref = V;

for begin ref = ref/2; aout_new = aout_new + ref * din[i]; end end V <+ transition; // Get a smoother transition when output level changes end endmodule<WtXmlEndTag />次のADCモデルは、デジタルブロックでアナログ信号を読み取っている。 `include "constants.vams" `include "disciplines.vams" // Simple ADC model module adc_simple;

// Parameters parameter integer bits = 4 from[1:24]; // Number of bits parameter integer td = 1 from[0:inf); // Processing delay of the ADC

// Define input/output input clk, vin, vref; output [bits-1:0] dout;

//Define port types electrical vref, vin; logic clk; reg [bits-1:0] dout;

// Internal variables real ref, sample; integer i;

initial begin dout = 0; end

// Perform sampling in the digital blocks for rising clock edge always @ begin

sample = V; ref = V;

for begin

ref = ref/2;

if begin dout[i] <= # 1; sample = sample - ref; end else dout[i] <= # 0; end end endmodule<WtXmlEndTag />

3. See also
-----------

Verilog
Verilog-A
VHDL-AMS
[1]

4. 出典
-----

5. 文献
-----

I. Miller and T. Cassagnes, "Verilog-AMS Eases Mixed Mode Signal Simulation," //Technical Proceedings of the 2000 International Conference on Modeling and Simulation of Microsystems//, pp.   305–308, Available: https://web.archive.org/web/20070927051749/http://www.nsti.org/publ/MSM2000/T31.01.pdf

6. 外部リンク
--------

[2] -- Verilog-AMS  Working Group
[3] — User's manual for Verilog-AMS and Verilog-A
[4] — Examples of models written in Verilog-AMS
[5] - Issues, future development, SystemVerilog integration

6.1. オープンソース実装
--------------

[6]
[7]