0

汎用データ幅で2次元メモリを宣言する方法を知りたい

package mem_pkg is
  subtype data is std_logic_vector(7 downto 0);
  type data_vector is array( natural range <> ) of data;
end;
entity mem is
port (
  clk : in std_logic;
  we : in std_logic -- write enable
  a: in unsigned(4 downto 0); -- address
  di : in data; -- data_in
  do : out data -- data_out
 );
 end mem;

7ではなく、データ幅を汎用にします。

4

1 に答える 1

0

これは2次元ではありません。これはベクトルのベクトルであり、(微妙に)異なります。

2D配列は

type data_vector is array (natural range <>, natural range <>) of integer;

しかし、問題に戻りましょう。

「最近」(VHDL 2008)までは、制約のない配列の制約のない配列を作成することはできませんでした。しかし今、あなたはできる:

type mem is array(natural range <>) of std_logic_vector;
signal store : mem(0 to 15)(7 downto 0);

VHDL2008-新しいものだけ」には、さらに詳細な情報があります。

http://books.google.co.uk/books?id=ETxLguPMEY0C&lpg=PA241&ots=q7u_Mn0SFR&dq=vhdl%202008%20just%20the%20new%20stuff%20p%20120&pg=PA120#v=snippet&q=alias%20of%20a% 20register%20file%20signal&f = false

于 2013-03-26T17:00:28.620 に答える