module count_monitor ( input wire clk, | |
output reg comp_en, | |
output reg sample, | |
output reg d1, | |
output wire d1b, | |
output reg d2, | |
output wire d2b, | |
output reg d3, | |
output wire d3b, | |
output reg d4, | |
output wire d4b, | |
output reg d5, | |
output wire d5b, | |
output reg d6, | |
output wire d6b, | |
output reg rs); | |
reg [4:0] sar_counter; | |
// 初期値代入 | |
initial begin | |
sar_counter = 8; | |
comp_en <= 1; | |
sample <= 0; | |
d1 <= 0; | |
d2 <= 0; | |
d3 <= 0; | |
d4 <= 0; | |
d5 <= 0; | |
d6 <= 0; | |
rs <= 0; | |
end | |
// 比較回数モニタ,制御 | |
always @ (posedge clk) | |
if (sar_counter == 8) begin | |
sample <= 0; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 7) begin | |
comp_en <= 0; | |
d6 <= 1; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 6) begin | |
d5 <= 1; | |
d6 <= 0; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 5) begin | |
d4 <= 1; | |
d5 <= 0; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 4) begin | |
d3 <= 1; | |
d4 <= 0; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 3) begin | |
d2 <= 1; | |
d3 <= 0; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 2) begin | |
d1 <= 1; | |
d2 <= 0; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 1) begin | |
d1 <= 0; | |
comp_en <= 1; | |
sar_counter = sar_counter - 1; | |
end | |
else if (sar_counter == 0) begin | |
sample <= 1; | |
sar_counter = 8; | |
end | |
always @ (negedge clk) | |
if (sar_counter == 0) begin | |
rs <= 1; | |
sample <= 1; | |
end | |
else if (sar_counter == 8) begin | |
rs <= 0; | |
end | |
assign d1b = ~d1; | |
assign d2b = ~d2; | |
assign d3b = ~d3; | |
assign d4b = ~d4; | |
assign d5b = ~d5; | |
endmodule |