Перейти к содержанию
    

RAM с использованием разных .mif

Имеется ROM

entity moddata is

    generic 
    (
        DATA_WIDTH : natural;
        ADDR_WIDTH : natural
    );

    port 
    (
        rclk    : in std_logic;
        raddr    : in std_logic_vector ((ADDR_WIDTH - 1) downto 0);
        q    : out std_logic_vector((DATA_WIDTH -1) downto 0)
    );

end moddata;

architecture behavioural of moddata is

    subtype word_model is std_logic_vector((DATA_WIDTH-1) downto 0);
    type memory_mod is array(2**ADDR_WIDTH-1 downto 0) of word_model;

    signal rom_mod : memory_mod;

    attribute ram_init_file : string;
    attribute ramstyle of rom_mod : signal is "M9K, no_rw_check";
    attribute ram_init_file of rom_mod : signal is "modcossin256.mif";

begin

    process(rclk)
    begin
    if(rising_edge(rclk)) then 
            q <= rom_mod(conv_integer(raddr));
    end if;
    
    end process;
    
end behavioural;

В данной ROM в качестве инициализатора используется файл modcossin256.mif

Но в основном проекте, в одном из режимов работы, требуется смена файла инициализации на другой (с другим содержимым).

Скажите пожалуйста как это можно сделать динамически - подменить файл в процессе работы, например в зависимости от состояния какого-то однобитного флага?

Или придется сделать два разных компонента ROM с разными .mif и в top-level по флагу включать в работу нужный компонент?

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предложу другой вариант.

Положите обе ваши таблицы в одну ROM по очереди, и в читающем устройстве меняйте базовый адрес для чтения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предложу другой вариант.

Положите обе ваши таблицы в одну ROM по очереди, и в читающем устройстве меняйте базовый адрес для чтения.

Точно. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...