UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 47073

13.4 XST - 合成中に「ERROR:HDLCompiler:1128」というエラー メッセージが誤って表示される

説明


ISE 13.3 より、極性リストに複数の信号があり、その信号がすべて process/always ブロックで使用されているわけではないケースで、XST で次のようなエラー メッセージが表示されます。(ザイリンクス アンサー 44499) を参照してください。

"ERROR:HDLCompiler:1128 - "multiple_clocks_1128.v" Line 16: Assignment under multiple single edges is not supported for synthesis."



このエラーを引き起こす可能性のあるコード例は次のようになります。

always @(posedge clk or posedge reset) begin

/*
if (reset)
out <= 1'b0;
else
*/
out <= d;
end



しかし、always ブロックで rst 信号が実際に使用されているにもかかわらず次のコードに対し XST で間違ってえらーメッセージが表示されます。この問題の解決方法を教えてください。

integer i;

always @ (posedge clk or posedge rst)
begin
for (i=0 ; i<16 ; i=i+1)
begin
if(rst)
out[i] <= 1'b0;
else
out[i] <= in[i];
end
end

ソリューション


この問題を回避するための回避策は次のとおりです。

回避策 : 1

次のように、このエラー メッセージの重要度を警告に変更して合成を続行させることができます。

-change_error_to_warning "HDLCompiler:1128"

回避策 : 2

ループを always ブロックの外に置き、generate 文を使用します。

genvar i;

generate
for (i=0 ; i<16 ; i=i+1)
begin
always @ (posedge clk or posedge rst)
begin
if(rst)
out[i] <= 1'b0;
else
out[i] <= in[i];
end
end
endgenerate
AR# 47073
日付 12/15/2012
ステータス アクティブ
種類 一般
ツール
  • ISE Design Suite - 13.4
このページをブックマークに追加