1

良い一日とこの質問を見てくれてありがとう

レコードタイプのインターフェイスでコアをシミュレートするためにVCSMX(2011年6月バージョン)を使用しています。コアはすべてVHDLで記述されています。私はこのコアを励起するためにSystemverilog(SV)テストベンチを使用しています。

レコードは次のようになります。

type ll_port is record
    frame_name      : std_logic_vector(WIDTH-1 downto 0);
    frame_valid     : std_logic;
 .
 .
 .
end record;

VHDLレコードタイプはSVの構造体と同じであると読みました。ただし、SVでll_port構造体を実装しようとすると、これはまだVCSMXでサポートされていない機能のようです。確実な解決策は、レコードポートをstd_logicとstd_logic_vectorに分解することです。

ただし、VHDLのこのレコードタイプは数回使用され、最終的なシステムでは複数のコアが相互作用するため、すべてのレコードポートの分解が非常に面倒になります。

私はこの問題をどのように処理するか、そしてこの問題に関してどのようなアドバイスを得ることができるかを見ようとしていました。SystemVerilogにカスタムシミュレーションインフラストラクチャがすでにあり、この問題の回避策があるかどうかを知りたいです。

RRS

4

1 に答える 1

1

あなたが探している答えではありませんが、ポートの分解に行き詰まっていると思います。

正直なところ、VHDL のポート タイプとしてのレコードは、何年にもわたってあらゆる種類のツールを破壊する優れた方法であったため、私を不安にさせます。レコードがポートで使用されていて、非常に多くの企業がこのような方法でのレコードの使用を禁止する社内規則を持っていた場合、逆接続 (MSB <-> LSB) に使用される合成ツールを知っています。

どちらかの側にいくつかの関数を記述して、レコードを 1 つの幅にフラット化してstd_logic_vectorから再構築することもできますが、各フィールドにポートを配置するよりも手間がかかり、読みにくくなると思います。

于 2012-02-28T08:22:48.907 に答える