MAX +PLUS®IIVHDL是否支持altdpram宏功能?
LPM_RAM_DP
,它相当于altdpram
并支持使用可以用文件初始化RAM的GENERIC
。 该altdpram
宏功能来实现Altera的双端口RAM®器件。它使用一个名为FILE
的GENERIC
,它也是一个VHDL关键字。但是,以这种方式使用关键字FILE
在VHDL组件声明中是非法的,因此,在MAX + PLUS II VHDL中不起作用。
使用文件初始化RAM时,只需要此GENERIC
。如果不需要altdpram
宏功能的此功能, altdpram
以为不包含FILE
GENERIC
的altdpram
宏功能进行组件实例化。下面的示例显示了如何为256 x 8版本的altdpram
执行此altdpram
:
LIBRARY ieee; 使用ieee.std_logic_1164.all; ... ENTITY dpram256x8是 港口( 数据:IN STD_LOGIC_VECTOR(7 downto 0); rdaddress:IN STD_LOGIC_VECTOR(7 downto 0); wraddress:IN STD_LOGIC_VECTOR(7 downto 0); ren:IN STD_LOGIC; 文:IN STD_LOGIC; inclock:IN STD_LOGIC; inclocken:IN STD_LOGIC; 超时:IN STD_LOGIC; outclocken:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(7 downto 0) ); END dpram256x8; ... dpram256x8 IS的架构示例 ... COMPONENT altdpram GENERIC(WIDTH:POSITIVE; WIDTHAD:积极的; NUMWORDS:积极; - LPM_FILE:string; WRADDRESS_REG:string:=“INCLOCK”; WRADDRESS_ACLR:string:=“ON”; WRCONTROL_REG:string:=“INCLOCK”; WRCONTROL_ACLR:string:=“ON”; RDADDRESS_REG:string:=“OUTCLOCK”; RDADDRESS_ACLR:string:=“ON”; RDCONTROL_REG:string:=“OUTCLOCK”; RDCONTROL_ACLR:string:=“ON”; INDATA_REG:string:=“INCLOCK”; INDATA_ACLR:string:=“ON”; OUTDATA_REG:string:=“UNREGISTERED”; OUTDATA_ACLR:string:=“ON”); PORT(数据:IN STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); rdaddress:IN STD_LOGIC_VECTOR(WIDTHAD-1 DOWNTO 0); wrAddress:IN STD_LOGIC_VECTOR(WIDTHAD-1 DOWNTO 0); rden:IN STD_LOGIC; wren:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); inclock:IN STD_LOGIC; inclocken:IN STD_LOGIC; 超时:IN STD_LOGIC; outclocken:IN STD_LOGIC; aclr:IN STD_LOGIC); 最终组件; .. SIGNAL vcc:std_logic; SIGNAL gnd:std_logic; 开始 ... vcc <='1'; gnd <='0'; inst_1:altdpram GENERIC MAP(宽度=> 8,widthad => 8,numwords => 256) 端口映射(data => data,rdaddress => rdaddress,wraddress => wraddress, rden => ren,wren => wen,inclock => inclock, inclocken => vcc,outclock => outclock, outclocken => vcc,aclr => gnd,q => q); ... 结束例子;