Verilogでシンプルなforeverループ


このエントリーをはてなブックマークに追加
  • Icarus Verilogで単純なループ処理
  • もとのコードは下記チュートリアルをやってみて、ループさせるとどんなものかみたかった
  • Verilog Tutorial with ICarus| Verification

comparator.v

1
2
3
4
5
6
7
8
9
module comparator(
input x,
input y,
output z
);
assign z = (-x & -y) | (x & y);
endmodule


comparator_test.v

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
`timescale 1ns / 1ns
module stimulus();
// input
reg x;
reg y;
// output
wire z;
// instantiate the unit under test (uut)
comparator uut (
.x(x),
.y(y),
.z(z)
);
integer period;
initial begin
x = 0;
y = 0;
period = 10;
end
initial begin
forever begin
#(period/3) x=~x;
#(period/3) x=~x;
end
end
initial begin
forever begin
#(period/2) y=~y;
#(period/2) y=~y;
end
end
initial begin
#100 $finish();
end
initial begin
$monitor("x=%d, y=%d, z=%d \n", x, y, z);
$dumpfile("comparatorsecond.vcd");
$dumpvars(0, stimulus);
end
endmodule // stimulus

このエントリーをはてなブックマークに追加