реклама на сайте
подробности

 
 
> Помогите избавиться от dangling'а, spartan-3AN
fylhtq2u
сообщение Sep 9 2009, 19:52
Сообщение #1





Группа: Участник
Сообщений: 3
Регистрация: 15-04-09
Из: Таганрог
Пользователь №: 47 729



После компиляции программы для процессора picoblaze создается файл proc_ROM:

CODE
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
library unisim;
use unisim.vcomponents.all;

entity proc_rom is
Port ( address : in std_logic_vector(9 downto 0);
instruction : out std_logic_vector(17 downto 0);
clk : in std_logic);
end proc_rom;

architecture low_level_definition of proc_rom is
attribute INIT_00 : string;
...
attribute INITP_07 : string;
--
-- Attributes to define ROM contents during implementation synthesis.
--
attribute INIT_00 of ram_1024_x_18 : label is "09FF003A09FF030002010F020E010D0000340F460E410D0A00340F390E300D00";
...
attribute INITP_07 of ram_1024_x_18 : label is "C000000000000000000000000000000000000000000000000000000000000000";
--
begin
--
--Instantiate the Xilinx primitive for a block RAM
ram_1024_x_18: RAMB16_S18
port map( DI => "1111111111111111",
DIP => "11",
EN => '1',
WE => '0',
SSR => '0',
CLK => clk,
ADDR => address,
DO => instruction(15 downto 0),
DOP => instruction(17 downto 16));
--
end low_level_definition;


При синтезе удаляется входные сигналы для блочной памяти: DI и DIP. И в МАП затем выдается сообщение о том, что

WARNING:PhysDesignRules:812 - Dangling pin <DIA0> on
block:<FILTER_1/CONTROL_1/PROGRAM_1/RAM_1024_X_18/FILTER_1/CONTROL_1/PROGRAM_
1/RAM_1024_X_18>:<RAMB16BWE_RAMB16BWE>.


Пробовал применить в файле proc_rom такой вот аттрибут

Код
    attribute BOX_TYPE: string;
    attribute BOX_TYPE of ram_1024_x_18: label is "BLACK_BOX";


Но он тоже не помог. Синтезатор все равно выкидывает входные сигналы для памяти.

Подскажите как это можно исправить, плиз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Boris_TS
сообщение Sep 12 2009, 19:59
Сообщение #2


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Попробовал я разные варианты создания BlockROM для Spartan-3A, наиболее интересным оказался вариант от Core Generator – т.к. и для этого варианта выдаются все теже сообщения, что и у Вас.

У Xilinx я не нашел рекомендуемого поведения на эти Warnings. Поэтому спросите у самого Xilinx, что делать, если ругается даже на код, рожденный Core Generator'ом.
Удалось найти только аналогичные ошибки, но про выходные сигналы: http://www.xilinx.com/support/answers/24846.htm

Цитата(fylhtq2u @ Sep 9 2009, 23:52) *
CODE
attribute INIT_00 : string;
...
attribute INITP_07 : string;
--
-- Attributes to define ROM contents during implementation synthesis.
--
attribute INIT_00 of ram_1024_x_18 : label is "09FF003A09FF030002010F020E010D0000340F460E410D0A00340F390E300D00";
...
attribute INITP_07 of ram_1024_x_18 : label is "C000000000000000000000000000000000000000000000000000000000000000";
--
begin
--
--Instantiate the Xilinx primitive for a block RAM
ram_1024_x_18: RAMB16_S18
port map( DI => "1111111111111111",
DIP => "11",
EN => '1',
WE => '0',
SSR => '0',
CLK => clk,
ADDR => address,
DO => instruction(15 downto 0),
DOP => instruction(17 downto 16));
--
end low_level_definition;

И я что-то не уловил: А зачем Вы используете attribute INIT (именно как атрибут) ? - Ведь у RAMB16_S18 есть Generic INIT - делает всё тоже самое, только без warnings при синтезе.
Go to the top of the page
 
+Quote Post
fylhtq2u
сообщение Sep 15 2009, 20:45
Сообщение #3





Группа: Участник
Сообщений: 3
Регистрация: 15-04-09
Из: Таганрог
Пользователь №: 47 729



Просмотрел vhd-файлы после каждой процедуры. translate пока не трогает входные сигналы. В MAP входные сигналы были уже удалены.


В отчете MAP сначала писалось предупреждение

WARNING:LIT:243 - Logical network DIA0 has no load,

а после него

WARNING:PhysDesignRules:812 - Dangling pin <DIA0> on
block:<FILTER_1/CONTROL_1/PROGRAM_1/RAM_1024_X_18/FILTER_1/CONTROL_1/PROGRAM_
1/RAM_1024_X_18>:<RAMB16BWE_RAMB16BWE>.


Нашел на Xilinx что-то подобное, но для Spartan-2

http://www.xilinx.com/support/answers/30390.htm

Там также появлялось предупреждение "LIT:243" и сказано, что ее можно безопасно игнорировать.
После же такого предупреждения может появиться следующее предупреждение

WARNING:PhysDesignRules:812

И далее сказано, что это сообщение также можно проигнорировать.
У меня они появлялись в таком же порядке. Правда примитив совсем другой.

Просмотрел другие BRAM в проекте и там не все входные сигналы использовались, а только часть. Возможно это "болтание" ни как не повлияет на работоспособность ПЛИС, но мне все же хочется избавиться от удаления входных сигналов. Можно ли это как-нибудь сделать?




P.S. Хотя есть несколько другой "изращенный" вариант. Подать сигнал "записи" на BRAM. Хотя сделать так, чтобы логически на этом сигнале единица появиться не смогла. Тогда ISE будет "думать", что запись в BRAM когда-нибудь произойдет и не будет удалять входные сигналы.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 21:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016