verilogでのカウントについて
アルテラのFPGA MAX10でverilogで書いておりますが、ちょっとわからないことがあり質問いたします。
早いクロック(Clock1)と遅いクロック(Clock2)があり、早いクロックでクロックをカウントし、
遅いクロックの立ち上がりでカウントをクリアしたいと思っています。
遅いクロックでのカウントクリアはあくまでも立ち上がりであるため、リセットのように
入っている間クリアではありません。
下記の記述では論理合成が出来ません。
reg [31:0] count;
always @(posedge Clock1, negedge res_n)
begin
if (~res_n) begin
count = 0;
end
else begin
count <= count+1;
end
end
always @(posedge Clock2)
begin
count <= 0;
end
また、下記の記述ではClocl2がHighの時に常にクリアされてしまいます。
reg [31:0] count;
always @(posedge Clock1, posedge Clock2)
begin
if (Clock2) begin
count = 0;
end
else begin
count <= count+1;
end
end
どのように記述するのは正しいのでしょうか?