2016-03-29 13 views
0

は、私は次のコードを持っていると言うロジックで変数を使うのですか?それは、これが単なる定数対比の割り当てに展開されるので、そうすべきだと思われます。そうでない場合は、これをどのように書きますか?は、どのように私は

+3

に変更する必要があります。実際の合成と実装のワークフローでこのコードを試しましたか? ISEが提供するRTLや技術の回路図や、シンセサイザーの出力や警告などを見ると、非常に役に立ちます。 – hexafraction

答えて

1

いいえこれを展開して手作業で入力するとします。このインサイド

always_comb begin 
    for(int i = 0; i < MAX; i = i + 1) begin: gen_blah 
    for(int j = 0; j < MAX; j = j + 1) begin: gen_foo 
     match[i] = (entry[j] == i); 
    end 
    end 
end 

を:あなたが生成され、常にそれが動作するブロック内のループでこれを行うことを取り除く場合は、しかし、

assign match[0] = (entry[0] == 0); 
assign match[0] = (entry[1] == 0); 

:こぶしの2行は、乗算駆動ネットを引き起こしますあなたは同じ値に複数の割り当てを得ることができますが、最後のものは "勝ちます"。私はあなたのコードで何を達成しようとしているのか分からないので、実際にあなたが探している機能を実行しないかもしれません。エントリがiの場合は、

always_comb begin 
    for(int i = 0; i < MAX; i = i + 1) begin: gen_blah 
    match[i]=0; 
    for(int j = 0; j < MAX; j = j + 1) begin: gen_foo 
     match[i] = match[i] || (entry[j] == i); 
    end 
    end 
end