Verilogを初めて使用しています。Verilogでビット配列の配列をランダム化する方法は?
bit [7:0] data [];
* SystemVerilogのの使用ランダマイズ()がなければ:
はどのようにして、次のランダム化することができます。
Verilogを初めて使用しています。Verilogでビット配列の配列をランダム化する方法は?
bit [7:0] data [];
* SystemVerilogのの使用ランダマイズ()がなければ:
はどのようにして、次のランダム化することができます。
のSystemVerilogは動的配列のサイズを変更しません(30と40の間のサイズの下の例で)ランダムなデータを持つ配列を生成する必要があります。したがって、randomize()
を呼び出す前に配列を割り当てるか、サイズをランダム化するために制約を使用する必要があります。あなたはランダマイズ()のSystemVerilogへのアクセス権を持っていない場合
bit [7:0] data [];
data = new[10];
randomize(data);
または
bit [7:0] data [];
randomize(data) with {data.size inside {[5:15]} ;};
か、あなたは、あなたの質問は、あなたがVerilogのに慣れていないと言う
data = new[10];
foreach(data[ii]) data[ii] = $urandom;
@Rahul Menon-私はsystemVerilog(randomize)に特別なメソッドがあることを知っています。私はVerilogで尋ねました。 – sara8d
あなたはVerilogで尋ねましたが、あなたの例はSystemVerilogの 'bit'タイプを示し、SystemVerilogタグを使用しました。私は 'randomize()'を使わずに答えを加えました。 –
@ dave_59は動的配列system-verilogではありませんか? –
は、配列のサイズを必要な範囲に制限し、randomizeを呼び出します。それはあなたがそれに制約をつけない限り
class rand_gen ;
rand bit [7:0] data[];
constraint db { data.size inside {[30:40]}; }
task generate();
randomize(data);
end task
endclass
行うことができますが、ありますSystemVerilogデータ型である動的配列をランダム化する方法を尋ねています。多分あなたは混乱を避けるためにそれを変えるべきでしょう。 – AndresM