したがって、コンポーネントのラッパーを作成しています。以上になる正式な会合:成分は配列のサブ要素をVHDLの特定の順序でマッピングしますか?
-- Definition in the original component
array_1 : out std_logic_vector (1 downto 0);
array_2 : out std_logic_vector (1 downto 0);
Iは、上記のようなエラーを生成
-- All foo1, foo2, bar1, bar2 are defined as output std_logic in wrapper port list
array_1 (0) => foo1,
array_2 (0) => bar1,
array_1 (1) => foo2,
array_2 (1) => bar2,
としてポートマップの配列のサブエレメントを割り当てることを試みているような配列の形でいくつかの入力を有しています一度
しかし、奇妙なことに、次のコンパイルは正常です。私は何かが欠け
array_1 (0) => foo1,
array_1 (1) => foo2,
array_2 (0) => bar1,
array_2 (1) => bar2,
アムは、私は、配列のサブ要素が一緒に関連付けられなければならないことどこにも見つけることができませんが、私は、彼らがされていない例を見つけることができません。私はちょうど後者を行うことができることを知っているが、私は興味があります。どんな助けもありがとう。
ところで、これは私が作った短い例です。元のコードは50以上の要素を持っていますが、私はこの問題を狭くしました。助けや提案をありがとう。
この小さな例をMCVEに拡張すると誰もコンパイルできません... http://stackoverflow.com/help/mcve –
IEEE Std 1076-1993 4.3.2.2関連はパラグラフ14 " ...明示的に宣言されたインタフェースオブジェクトまたはメンバ...後者の場合、名前付きの関連付けを使用して正式なものと実際のものを関連付ける必要があり、そのような形式の下位要素は個別に関連付けられる*と言います。さらに、明示的に宣言されたインタフェースオブジェクトのすべてのスカラサブ要素は、同じ関連リストの実際の(またはその下位要素と)正確に1度関連付けられなければならず、**そのような関連付けはすべて、その関連リスト内の連続したシーケンス**でなければなりません。 – user1155120
@ user1155120:VHDL-2008の間違ったソースを混乱させてコンパイルしました。 ghdlは '--std = 08'フラグにかかわらず、このコードを拒否し、ポート" array_1 "に対する非連続的な個別の関連付けを報告します。 「それから、LRMで迷ってしまって、4.3.2.2が見つかりませんでした。それを見つけてくれてありがとう! (以前のコメントを削除する) –