4

VHDL では、配列 (ベクトル) は を使用して初期化できます(others => <element>)

1 次元の例:

signal mySignal1 : std_logic_vector(7 downto 0) := (others => '0'); 

ネストされた 2 つの 1 次元ベクトルを使用している場合、次の例のようになります。

type myVector is array(natural range <>) of std_logic_vector(7 downto 0);
signal mySignal2 : myVector(3 downto 0) := (others => (others => '0'));

OK、これが真の 2 次元の例です。

type myMatrix is array(natural range <>, natural range <>) of std_logic;
signal mySignal3 : myMatrix(3 downto 0, 7 downto 0) := (others => (others => '0'));

ご覧のとおり、信号の構造は前のものとは異なりますが、初期化は同じです。

この構文が(others, others => '0')使用されている/使用されていないのはなぜですか?

4

1 に答える 1

0

コンストラクト (others, other => '0') のコンマ "," は、2 つの項がベクトルのスカラー要素であることを意味するためです。そうではありません。(others => (others => '0')) は、VHDL が持つ唯一の完全に制約のないネストされたベクトル コンストラクトです。

于 2016-09-22T17:31:25.823 に答える