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

 
 
 
Reply to this topicStart new topic
> Объединение сигналов при мапе, Объединение схожих сигналов (регистров)
svedach
сообщение Jul 13 2012, 05:10
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 8-01-12
Из: Беларусь
Пользователь №: 69 226



В проекте использую синхронный сброс. В каждый модуль проекта добавлен регистр для этого сигнала - таким образом пытаюсь уменьшить длину провода (проект большой). Но просматривая результат P&R в FPGA Editor-е не вижу внутренних сигналов сброса модулей. Такое впечатление, что ISE посмотрел, что сигналы схожи и использует один регистр, а от него разводит сигналы сброса в модули, так что времянка не выполняется. Как правильно бороться с этой проблемой?
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Jul 13 2012, 06:00
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



Цитата(svedach @ Jul 13 2012, 09:10) *
В проекте использую синхронный сброс. В каждый модуль проекта добавлен регистр для этого сигнала - таким образом пытаюсь уменьшить длину провода (проект большой). Но просматривая результат P&R в FPGA Editor-е не вижу внутренних сигналов сброса модулей. Такое впечатление, что ISE посмотрел, что сигналы схожи и использует один регистр, а от него разводит сигналы сброса в модули, так что времянка не выполняется. Как правильно бороться с этой проблемой?

А что значит времянка не выполняется? Какой вы констрейн на reset ставите?
Для того что бы мапер не трогал регистры есть констрейн с дурацким названием S.
Почитайте про него в constraints guide.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jul 13 2012, 07:22
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Попробуйте fanout для триггеров, формирующих сброс, уменьшить.
Go to the top of the page
 
+Quote Post
svedach
сообщение Jul 13 2012, 07:56
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 8-01-12
Из: Беларусь
Пользователь №: 69 226



2 Mad_max: Регистр тактируется цепью, на которой задан констрейн и он автоматически пересчитывается.
2 andrew_b: Может быть действительно так. С ходу не подскажите как это сделать?
И вообще если мне не важна последовательность сброса, как мне правильно разделить эту длинную цепь регистрами? А то она ведь идет через весь кристалл...
Go to the top of the page
 
+Quote Post
TRILLER
сообщение Jul 13 2012, 07:59
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001



Цитата(svedach @ Jul 13 2012, 09:10) *
Такое впечатление, что ISE посмотрел, что сигналы схожи и использует один регистр, а от него разводит сигналы сброса в модули, так что времянка не выполняется.

Если синтезируете схему в симплифае, то это и происходит, только ещё на этапе синтеза схемы). Нужно использовать аттрибут syn_hier для того, чтобы ограничить оптимизацию для синтезатора, допустим, в приделах компонента. Тогда эта проблема не возникнет.
Хотя XST, вроде бы, по умолчанию не должен оптимизировать...
А вообще Я именно так и поступаю - ввожу в каждый компонент свой регистр ресета(с переменной шириной), и контролирую, чтобы фэнаут был не больше 80-90. Всё хорошо выходит.

Сообщение отредактировал TRILLER - Jul 13 2012, 08:02
Go to the top of the page
 
+Quote Post
svedach
сообщение Jul 13 2012, 08:03
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 8-01-12
Из: Беларусь
Пользователь №: 69 226



2 TRILLER: для синтеза использую XST, после смотрю результат синтеза, там все присутствует... Т.Е. вставленные мной регистры присутствуют. По этому и сделал вывод, что объединение (или урезание "лишних") и проводка цепи сброса в другие модули происходит на этапе P&R или Map...
Go to the top of the page
 
+Quote Post
TRILLER
сообщение Jul 13 2012, 08:06
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001



Цитата(svedach @ Jul 13 2012, 12:03) *
2 TRILLER: для синтеза использую XST, после смотрю результат синтеза, там все присутствует... Т.Е. вставленные мной регистры присутствуют. По этому и сделал вывод, что объединение (или урезание "лишних") и проводка цепи сброса в другие модули происходит на этапе P&R или Map...

Прошу прощения за нескромный вопрос - смотрите в РТЛ или Технолоджи? Не подумайте, что хочу вас обидеть, но так, на всякий случай спрашиваю.. rolleyes.gif
Go to the top of the page
 
+Quote Post
svedach
сообщение Jul 13 2012, 08:09
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 8-01-12
Из: Беларусь
Пользователь №: 69 226



В технолоджи.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jul 13 2012, 09:18
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(svedach @ Jul 13 2012, 11:56) *
2 andrew_b: Может быть действительно так. С ходу не подскажите как это сделать?

Констрейн max_fanout задаётся либо через атрибут непосредственно в коде, либо в xcf-файле. Посмотрите xst.pdf, там есть примеры.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 6th July 2025 - 02:59
Рейтинг@Mail.ru


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