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

Слаки для несуществующих путей

Приветствую!

Есть модуль А, с него выходит сигнал (14 бит), сигнал идет на модуль B, который имеет единственный выход (14 бит), подключенный непосредственно к выводам. Также сигнал идет на модуль C. Выходы модуля С расходятся по другим модулям. Схема полностью синхронна, один домен.

При анализе выдает слаки. Для меня странно это: From Node: reg_B, To Node: reg_C. При этом. связи между регистрами reg_B (находится в модуле B) и reg_C (в модуле С) нет.

Зачем анализатор это оценивает? Где он нашел этот путь? Естественно, просмотр RTL и Technology Map не дает результата, нет такого пути.

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

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

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.: Я понимаю. что пока вопрос рассчитан на телепатов, подскажите, какими сведениями дополнить?

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


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

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

Помог, но лучше не стало. Есть оказывается путь. Есть, но быть его не должно! На RTL нет, а в Technology Map есть.

Пот холодный пробивает, волосы на спине дыбом встают, аж сидеть неудобно! Это оказывается я настолько Verilog не знаю ... или вообще не понимаю, как работает компилятор.

Упрощенно иерархия модулей выглядит так:

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:

                  _______
                | MOD B |data_o 
_______     +-->|       |----> Pin Out
| MOD A |    |   | reg_B |reg_B  
|       |----+   |_______|----+
|       |                     |    _______
|       |                     |   | MOD C |
|       |                     +-->|       |----> Other Moduls
|_______|                         | reg_C |
                                 |_______|

 

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

Как дальше жить?

 

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


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

Помог, но лучше не стало. Есть оказывается путь. Есть, но быть его не должно! На RTL нет, а в Technology Map есть.

Как дальше жить?

Квартусовский фиттер может формировать границы модулей, как ему вздумается, в данном случае он взял и перенёс кусок логики из модуля C в модуль B. Причём запретить ему это делать вроде как невозможно. Естественно, поведение схемы от этого не меняется.

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


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

Как дальше жить?

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

 

Причём запретить ему это делать вроде как невозможно.

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

 

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


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

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

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

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

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

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

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

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

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

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