三角波を作成する SV-RNM

はじめに

SystemVerilog-RNMで三角波を作成します。

サンプルコード

パラメータ
ts:サンプリング時間
step:tsあたりの変化値
max:最大値
min:最小値

`timescale 1us/1us
module top;
    // パラメータ
    parameter time ts = 1ms;
    parameter real step = 1.0;
    parameter real max = 5.0;
    parameter real min = -5.0;

    real data = 0;
    bit up = 0;
    always #ts begin
        if (data > max) begin
            up = 0;
        end
        else if (data < min) begin
            up = 1;
        end

        data += up ? step : -step;
    end
endmodule

実行結果

まとめ

SystemVerilog-RNMで三角波を作成しました。

コメント

タイトルとURLをコピーしました