Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RAM с использованием разных .mif
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
Acvarif
Имеется 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 по флагу включать в работу нужный компонент?
Swup
Предложу другой вариант.
Положите обе ваши таблицы в одну ROM по очереди, и в читающем устройстве меняйте базовый адрес для чтения.
Acvarif
Цитата(Swup @ Jul 3 2017, 11:22) *
Предложу другой вариант.
Положите обе ваши таблицы в одну ROM по очереди, и в читающем устройстве меняйте базовый адрес для чтения.

Точно. Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.