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

 
 
> Слаки для несуществующих путей, Altera. TimeQuest
shamrel
сообщение Mar 9 2016, 05:23
Сообщение #1


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

Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229



Приветствую!
Есть модуль А, с него выходит сигнал (14 бит), сигнал идет на модуль B, который имеет единственный выход (14 бит), подключенный непосредственно к выводам. Также сигнал идет на модуль C. Выходы модуля С расходятся по другим модулям. Схема полностью синхронна, один домен.
При анализе выдает слаки. Для меня странно это: From Node: reg_B, To Node: reg_C. При этом. связи между регистрами reg_B (находится в модуле cool.gif и reg_C (в модуле С) нет.
Зачем анализатор это оценивает? Где он нашел этот путь? Естественно, просмотр RTL и Technology Map не дает результата, нет такого пути.
CODE

_______
| MOD B |
_______ +-->| |----> Pin Out (dacM_code_A_o)
| MOD A | | | reg_B |
| |----+ |_______|
| | | _______
| | | | MOD C |
| | +-->| |----> Other Moduls
|_______| | reg_C |
|_______|

И на всякий случай, содержимое sdc:
CODE

set_time_format -unit ns -decimal_places 3

derive_clock_uncertainty

create_clock -period 50MHz -name {clk_50MHz_i} [get_ports {clk_50MHz_i}]

derive_pll_clocks

set clk_125MHz pll_50MHz_inst|altpll_component|auto_generated|pll1|clk[0]

create_generated_clock -name {clk_ext} -invert -source $clk_125MHz [get_ports {dacM_clk_o}]

set_output_delay -clock [get_clocks {clk_ext}] -max 0.2 [get_ports {dacM_code_A_o[*]}]
set_output_delay -clock [get_clocks {clk_ext}] -min -1.5 [get_ports {dacM_code_A_o[*]}]


P.S.: Я понимаю. что пока вопрос рассчитан на телепатов, подскажите, какими сведениями дополнить?


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
des00
сообщение Mar 9 2016, 07:05
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Locate in Technology Map viewer не помогает ?


--------------------
Go to the top of the page
 
+Quote Post
shamrel
сообщение Mar 9 2016, 07:37
Сообщение #3


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

Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229



Цитата(des00 @ Mar 9 2016, 10:05) *
Locate in Technology Map viewer не помогает ?

Помог, но лучше не стало. Есть оказывается путь. Есть, но быть его не должно! На RTL нет, а в Technology Map есть.
Пот холодный пробивает, волосы на спине дыбом встают, аж сидеть неудобно! Это оказывается я настолько Verilog не знаю ... или вообще не понимаю, как работает компилятор.
Упрощенно иерархия модулей выглядит так:
CODE
mod_A mod_A_inst (
...
.data_o(mod_A_out) // других выходов нет
);

mod_B mod_B_inst (
...
.signal_i(mod_A_out), // вход модуля
.data_o(mod_B_out) // других выходов нет
);

mod_C mod_C_inst (
...
.signal_i(mod_A_out), // вход модуля
.data_o(mod_C_out) // других выходов нет
);

Как выглядит RTL, я показал в предыдущем посте, а вот так выглядит Technology Map:
CODE
_______
| MOD B |data_o
_______ +-->| |----> Pin Out
| MOD A | | | reg_B |reg_B
| |----+ |_______|----+
| | | _______
| | | | MOD C |
| | +-->| |----> Other Moduls
|_______| | reg_C |
|_______|


Причем, reg_B не дублирует вход, да, туда записываются данные, но с преобразованием. В модуля А на выходе стоит регистр. Это получается в модуль С вообще че попало подается.
Как дальше жить?


--------------------
Go to the top of the page
 
+Quote Post
Timmy
сообщение Mar 9 2016, 08:06
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(shamrel @ Mar 9 2016, 10:37) *
Помог, но лучше не стало. Есть оказывается путь. Есть, но быть его не должно! На RTL нет, а в Technology Map есть.
Как дальше жить?

Квартусовский фиттер может формировать границы модулей, как ему вздумается, в данном случае он взял и перенёс кусок логики из модуля C в модуль B. Причём запретить ему это делать вроде как невозможно. Естественно, поведение схемы от этого не меняется.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 9 2016, 08:38
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(shamrel @ Mar 9 2016, 14:37) *
Как дальше жить?

Думать головой и понимать причины такого поведения.

Цитата(Timmy @ Mar 9 2016, 15:06) *
Причём запретить ему это делать вроде как невозможно.

Возможно. Например запретив оптимизацию между модулей (так называем плоский нетлист) или зафиксировать конкретные сигналы, запретив их оптимизацию.


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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