否则只能你自己敲代码去实现这部分功能。
用数组加常量定义就祥扮行了。下面的例子做了个简单的封装,也许你并不需要,只要里面的语句就行了。当然你也可以谨搭灶修改接口,让它变成带使能的、同步的ROM等等。例如,你想实现addr 0 = 0x55AA;addr 1 = 0x55BB;addr 2 = 0x55CC;addr 3 = 0x55DD
library IEEE
use IEEE.std_logic_1164.all
use IEEE.std_logic_arith.all
use IEEE.std_logic_unsigned.all
entity ROM is
port (
addr : in std_logic_vector(1 downto 0)
dout : out std_logic_vector(15 downto 0)
)
end ROM
architecture ROM_arch of ROM is
type ROM_ARRAY_TYPE is array (0 to 3) of std_logic_vector(15 downto 0)
constant ROM_DATA : ROM_ARRAY_TYPE := (
x"55AA",
x"枝团55BB",
x"55CC",
x"55DD"
)
begin
dout <= ROM_DATA(conv_integer(addr))
end ROM_arch
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)