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

Как заставить Synplify8.62 генерить ПЗУ в блочной памяти для Spartan3?

Вот текст (VHDL):

 

==============================================

 

library IEEE;

use IEEE.STD_LOGIC_1164.all;

 

entity PZU is

port (

clk : in std_logic;

Adress : in std_logic_vector(9 downto 0);

Data : out std_logic_vector(3 downto 0)

);

end PZU;

 

library synplify;

use synplify.attributes.all;

 

architecture PZU of PZU is

 

signal ROM : std_logic_vector(3 downto 0);

 

attribute syn_romstyle of ROM : signal is "block_rom";

 

begin

 

process(clk)

begin

if rising_edge(clk)then

case Adress is

when "0010000000" => ROM <= "0110";

when "0010000011" => ROM <= "0100";

 

до хрена всего.......

 

when "1011110110" => ROM <= "0001";

when others => ROM <= "0000";

end case;

end if;

process;

 

Data <= ROM;

 

end PZU_FAP;

 

=================================================

 

В Vertex'e генерилась нормальная ПЗУшка в блочной памяти.

 

В Spartane3 генерит ПЗУ на распределенной памяти. Причем строку

attribute syn_romstyle of ROM : signal is "block_rom";

игнорирует полностью.

 

Как можно заставить Synplify засунуть ПЗУ в блочную бамять Спартана3 ?

В принципе же это должно быть возможно. В Help'e Synpli ответа не нашел. На форуме - тоже.

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


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

В Vertex'e генерилась нормальная ПЗУшка в блочной памяти.

 

В Spartane3 генерит ПЗУ на распределенной памяти. Причем строку

attribute syn_romstyle of ROM : signal is "block_rom";

игнорирует полностью.

 

Как можно заставить Synplify засунуть ПЗУ в блочную бамять Спартана3 ?

Сколько у вас определено адресов ПЗУ в вышем коде? Сопоставьте объем одного блока памяти в Virtex и Spartan3. В Синплифаевской доке в описании атрибута syn_romstyle для Xilinx есть такая фраза:

For the Synplify Pro synthesis tool to implement a ROM, at least half of the available addresses in the CASE statement must be assigned a value. For example, consider a ROM with six address bits (64 unique addresses). The case statement for this ROM must specify values for at least 32 of the available addresses.

Скорее всего, дело в этом.

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


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

Задействовано 526 из заявленных 1024. Вроде соответствует цитате из Хелпа. Но попробую даписать пустышки до половины Спартановской блок-памяти. Спасибо за мысль. Отпишу, что получилось.

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


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

Вобщем, как говорится, - "дело было не в бабине ..." . В Implementation Options была установлена галочка на Disable Sequential Optimizations. Блин, диверсия, :wacko: - пол дня потерял...

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


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

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

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

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

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

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

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

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

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

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