1

合成中にentities default generic valuesorにアクセスする方法があるかどうか知りたいです。an entities architectures constants

これは好奇心からです (私はそのようなものを実装したいと思っています)。

考えられるユースケース

1) デフォルト エンティティのテストベンチの生成:

entity testme is
    generic(outputs:integer:=4);
    ports(output:out bit_vector(0 to outputs);
end entity;

テストベンチでは、出力に接続できる信号を生成する必要がありますが、ジェネリック値を知らなくても、そうする方法はありません。

2) Blockram をインスタンス化するときに使用する実際のサイズを知りたいです。FPGA には Blockram があり、1 つのブロックで使用できるよりも多くの RAM が必要な場合は、複数のブロックを組み合わせて使用​​できる RAM の固定チャンクです。テクノロジによって、使用可能なブロックラムのサイズが変わる可能性があります。したがって、2 つの汎用パラメーターを持つエンティティを作成し、memory可能technologyな限り最小のブロックラムでメモリを実装します。これにより、メモリが要求されたよりも大きくなる可能性があります。メモリを完全に活用するためにメモリのサイズを必要とする別のエンティティ (つまり、循環バッファ コントローラ) がある場合は、割り当てられたメモリの実際のサイズを提供する必要があります。

4

2 に答える 2

0

これらを上から (つまり、テストベンチから) 押し下げる必要があります。下位レベルのブロックを検査することはできません (ただし、信号を取り出して上部に戻すことはできると思います!)

于 2013-04-03T16:01:08.767 に答える
0

制約のない型を使用できます。たとえば、次のようになります。

entity example
port(
    i: std_logic_vector;
    o: std_logic_vector
);

テストベンチでは、定義済みのベクトルを追加します。例:

....
signal i,o: std_logic_vector(10 downto 0);

begin
   uut: example
   port map(
      i => i,
      o => o
   );
于 2013-04-03T16:23:05.720 に答える