2017-02-16 15 views

ответ

1

Это будет получить синтезирован много комбинационной логики. Эта комбинационная логика будет иметь около 600 входов и 9 выходов.

С FPGA synthesier, если вы должны были написать некоторый код вокруг этой линии:

prbs_reg_feed <= prbs_reg_ip(byte_indx); 

, чтобы сделать код вести себя больше как RAM, то вы, вероятно, получить оперативную память. (Вы должны прочитать выходные файлы отчетов с помощью синтезатора, чтобы убедиться в этом.)

process(clock) is 
    begin 
    if rising_edge(clock) then 
     if we = '1' then 
     prbs_reg_ip(byte_indx) <= datain; 
     end if; 
    prbs_reg_feed <= prbs_reg_ip(byte_indx); 
    end if; 
    end process; 

NB: это предполагает, что byte_indx является integer.

+0

Спасибо, Metthew ... – vijay

2

С осторожностью и некоторыми знаниями о вашей целевой ПЛИС, это будет реализовано как блок памяти вместо комбинационной логики.

Типичное ограничение состоит в том, что назначение
prbs_reg_feed <= prbs_reg_ip(byte_indx);
должен быть помещено в синхронизированном процессе, так как блоки памяти, как правило, синхронно.

Единственный способ убедиться, что это займет несколько минут и попытаться синтезировать этот блок самостоятельно и прочитать сводный отчет. И если это не сработает, сначала прочитайте документацию и поэкспериментируйте.

Some examples here для ОЗУ. ROM может быть такой же, но без какой-либо способ, чтобы написать ее, и, возможно, объявив prbs_reg_ip как константу вместо сигнала, например

constant prbs_reg_ip : reg_type := (0 => X"C3", 1 => "80", 2 => "FF", ...); 

Для некоторых ПЛИС или FPGA инструментов, вам может понадобиться добавить атрибут сигнал (или тип), представляющий память, например

signal prbs_reg_ip    : reg_type; 
attribute ram_style : string; 
attribute ram_style of prbs_reg_ip : signal is "block"; -- or "distributed" 

См this Xilinx answer для примера этого.

 Смежные вопросы

  • Нет связанных вопросов^_^