【问题标题】:how to use Xilinx FPGA RAM?如何使用赛灵思 FPGA RAM?
【发布时间】:2021-07-11 13:41:58
【问题描述】:

例如

entity xilinx_TDP_RAM is
  generic(
    ADDR_WIDTH : integer := 32;
    DATA_WIDTH : integer := 129;
    ENTRIES    : integer := 32  -- number of entries  (should be a power of 2)
    );
  port(
    clk : in std_logic;  -- clock

    addra : in std_logic_vector(ADDR_WIDTH-1 downto 0);  -- Port A Address bus, width determined from RAM_DEPTH
    addrb : in std_logic_vector(ADDR_WIDTH-1 downto 0);  -- Port B Address bus, width determined from RAM_DEPTH
    dina  : in std_logic_vector(DATA_WIDTH-1 downto 0);  -- Port A RAM input data
    dinb  : in std_logic_vector(DATA_WIDTH-1 downto 0);  -- Port B RAM input data

    wea : in std_logic;  -- Port A Write enable
    web : in std_logic;  -- Port B Write enable
    ena : in std_logic;  -- Port A RAM Enable, for additional power savings, disable port when not in use
    enb : in std_logic;  -- Port B RAM Enable, for additional power savings, disable port when not in use

    douta : out std_logic_vector(DATA_WIDTH-1 downto 0);  -- Port A RAM output data
    doutb : out std_logic_vector(DATA_WIDTH-1 downto 0)   -- Port B RAM output data
    );
end xilinx_TDP_RAM;

ADDR_WIDTH & DATA_WIDTH & ENTRIES 有什么关系? DATA_WIDTH 必须是 2**N ? 谢了!

【问题讨论】:

    标签: fpga ram


    【解决方案1】:

    这不是 xilinx 接口。 但我认为我们仍然可以回答您的问题:

    ADDR_WIDTH 通常等于:

    ceil(log2(real(ENTRIES)))
    

    不看实现, DATA_WIDTH 可以等于任何正数(在您的 FPGA 资源限制内)。

    顺便说一句,我使用 Xilinx 的内存是 xpm_memory_tdpram

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多