0228774ワット発電中さん
2014/07/03(木) 08:41:13.26ID:jwmrgXxCフラグを立てる代わりにフラグをトグルして、トグルされたフラグを
clk2のFFで2回たたいて同期化し、そのあとflagのエッジ検出して処理開始すれば確実だよ。
異なるクロック間で処理開始の伝達はよくある事なので、俺はこれ専用の回路を
モジュール化(IP化)して使いまわしてるけど。
修正案↓
reg flag;
reg [2:0] flag_sync; //flagのclk2同期化とエッジ検出用レジスタ
always(posedge clk1 or rst) begin
if(rst) flag <= 0;
else begin
if(エラー) flag <= !flag;
end
end
always(posedge clk2 or rst) begin
if(rst) xx
else begin
flag_sync <= {flag_sync[1:0],flag} //flagをclk2に同期化
if(flag_sync[2] != flag_sync[1]) begin //エッジ検出
なんか一度だけのことをする。たとえばエラーメッセージをバッファに入れるとか。
end
end
end