Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Modelsim 6.5f
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
BlackOps
Вот код массива регистров:
Код
    reg_array: for reg_index in 31 downto 0 generate
    constant data_lo : natural := reg_index * 32;
    constant data_hi : natural := reg_index * 32 + 31;
    begin
        reg: component dffn
        generic map (
                n => 32
                )
        port map (
             clk => clk,
             en => '1',
             rst => rst,
             d => reg_in(data_hi downto data_lo),
             q => reg_out(data_hi downto data_lo)
             );
    end generate reg_array;



КОмпилится нормально, да и логически ясно массив из 32 регистров размером 32 бит каждый. А вот во время запуска симуляции вот что выдает:
# ** Fatal: (vsim-3471) Slice range (1023 downto 992) does not belong to the prefix index range (31 downto 0).
есть идеи какие?

да у меня reg_in/reg_out 32 бит.....


Ладно тогда такой вопрос: как видите там я использую операцию умножения, однако над константами и внутри оператора генерирования логики... так вот оптимайзер это как воспримет? Я думаю ето должно сгенерировать комбинированную логику, а не действительную операцию Умножения?


Проще говоря, на чипе ето будет уже реализовано в виде фиксированной логики (так как если бы я все ети регистры вручную в коде прописывал пронумеровывая) ?
andrew_b
Цитата(BlackOps @ Sep 16 2010, 08:51) *
у меня reg_in/reg_out 32 бит.....
Ну а что ж вы им подсовываете 1023? Судя по коду, reg_in/reg_out у вас должны быть 31*32 + 31 +1 бит, а не 32.

Цитата
Ладно тогда такой вопрос: как видите там я использую операцию умножения, однако над константами и внутри оператора генерирования логики... так вотоптимайзер это как воспримет? Я думаю ето должно сгенерировать комбинированную логику, а не действительную операцию Умножения?
Не будет никакого умножителя, ни комбинаторного, ни аппаратного. Каждый регистр будет иметь доступ к своей части очень широких векторов reg_in/reg_out.
BlackOps
Ну так да я потом заметил что 32 а не 1024, с этим все Ок уже, спасибо smile.gif

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