papasha 0 15 мая, 2007 Опубликовано 15 мая, 2007 · Жалоба Вот текст (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 ответа не нашел. На форуме - тоже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 15 мая, 2007 Опубликовано 15 мая, 2007 · Жалоба В 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. Скорее всего, дело в этом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
papasha 0 15 мая, 2007 Опубликовано 15 мая, 2007 · Жалоба Задействовано 526 из заявленных 1024. Вроде соответствует цитате из Хелпа. Но попробую даписать пустышки до половины Спартановской блок-памяти. Спасибо за мысль. Отпишу, что получилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
papasha 0 15 мая, 2007 Опубликовано 15 мая, 2007 · Жалоба Вобщем, как говорится, - "дело было не в бабине ..." . В Implementation Options была установлена галочка на Disable Sequential Optimizations. Блин, диверсия, - пол дня потерял... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться