はじめに
SystemVerilog-RNMで矩形波(方形波)を作成します。
サンプルコード
パラメータ
ts:サンプリング時間
step:tsあたりの変化値
max:最大値
min:最小値
stable:Max/Minの期間(ts単位)
`timescale 1us/1us
module top;
parameter time ts = 1ms;
parameter real step = 1.0;
parameter real max = 5.0;
parameter real min = -5.0;
parameter int stable = 20;
real data = 0;
bit up;
int cnt;
always #ts begin
if (data > max) begin
data = max;
up = 0;
cnt = 10;
end
else if (data < min) begin
data = min;
up = 1;
cnt = 10;
end
if(cnt == 0) begin
data += up ? step : -step;
end
else begin
cnt -= 1;
end
end
endmodule
実行結果
まとめ
SV-RNMで矩形波を作成しました。
コメント