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

Gowin IDE's rPLL dangling nets warning

Всем добра.

При компиляции проекта с параметризованной rPLL с обвязкой таком виде

module rPLL25MHzTo40MHz66 
(
    input  logic Clk25MHz ,
    output logic PLL40MHz66 ,
    output logic lock
) ;

    logic clkoutp  ;
    logic clkoutd  ;
    logic clkoutd3 ;

    rPLL rpll_inst 
    (
        .CLKOUT   ( PLL40MHz66 ) ,
        .LOCK     ( lock       ) ,
        .CLKOUTP  ( clkoutp    ) ,
        .CLKOUTD  ( clkoutd    ) ,
        .CLKOUTD3 ( clkoutd3   ) ,
        .RESET    ( '0         ) ,
        .RESET_P  ( '0         ) ,
        .CLKIN    ( Clk25MHz   ) ,
        .CLKFB    ( '0         ) ,
        .FBDSEL   ( '0         ) ,
        .IDSEL    ( '0         ) ,
        .ODSEL    ( '0         ) ,
        .PSDA     ( '0         ) ,
        .DUTYDA   ( '0         ) ,
        .FDLY     ( '0         )
    ) ;

    defparam rpll_inst.FCLKIN           = "25"       ;
    defparam rpll_inst.DYN_IDIV_SEL     = "false"    ;
    defparam rpll_inst.IDIV_SEL         = 7          ;
    defparam rpll_inst.DYN_FBDIV_SEL    = "false"    ;
    defparam rpll_inst.FBDIV_SEL        = 12          ;
    defparam rpll_inst.DYN_ODIV_SEL     = "false"    ;
    defparam rpll_inst.ODIV_SEL         = 16          ;
    defparam rpll_inst.PSDA_SEL         = "0000"     ;
    defparam rpll_inst.DYN_DA_EN        = "true"     ;
    defparam rpll_inst.DUTYDA_SEL       = "1000"     ;
    defparam rpll_inst.CLKOUT_FT_DIR    = 1'b1       ;
    defparam rpll_inst.CLKOUTP_FT_DIR   = 1'b1       ;
    defparam rpll_inst.CLKOUT_DLY_STEP  = 0          ;
    defparam rpll_inst.CLKOUTP_DLY_STEP = 0          ;
    defparam rpll_inst.CLKFB_SEL        = "internal" ;
    defparam rpll_inst.CLKOUT_BYPASS    = "false"    ;
    defparam rpll_inst.CLKOUTP_BYPASS   = "false"    ;
    defparam rpll_inst.CLKOUTD_BYPASS   = "false"    ;
    defparam rpll_inst.DYN_SDIV_SEL     = 2          ;
    defparam rpll_inst.CLKOUTD_SRC      = "CLKOUT"   ;
    defparam rpll_inst.CLKOUTD3_SRC     = "CLKOUT"   ;
    defparam rpll_inst.DEVICE           = "GW2A-18C" ;

endmodule : rPLL25MHzTo40MHz66

и инстанциированного в проект в виде

    rPLL25MHzTo40MHz66 rPLL25MHzTo40MHz66_inst 
    (
        .Clk25MHz   ( Clk25MHz   ) ,
        .PLL40MHz66 ( PLL40MHz66 ) ,
        .lock       ( PLL_locked )
    ) ;

возникают предупреждения среды:
 

WARN  (PA1001) : Dangling net 'PLL_locked'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination
WARN  (PA1001) : Dangling net 'clkoutp'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination
WARN  (PA1001) : Dangling net 'clkoutd'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination
WARN  (PA1001) : Dangling net 'clkoutd3'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination

Все эти сигналы, действительно, никак больше не используются.

Вопрос: что с ними можно сделать, кроме как закрыть на них глаза?

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


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

Ещё можно их просто удалить, это же выходные цепи.

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


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

При удалении указующий перст среды уходит внутрь IP

WARN  (PA1001) : Dangling net 'rpll_inst_2_CLKOUTP'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination
WARN  (PA1001) : Dangling net 'rpll_inst_2_CLKOUTD'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination
WARN  (PA1001) : Dangling net 'rpll_inst_2_CLKOUTD3'(source:'rpll_inst') in module 'rPLL25MHzTo40MHz66' has no destination

 

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


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

Не нашёл ничего лучшего, чем вывести на неиспользуемый вывод

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


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

7 часов назад, Zversky сказал:

Вопрос: что с ними можно сделать, кроме как закрыть на них глаза?

Отменить вывод всех предупреждений для Place & Route.

pic1.jpg

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


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

4 часа назад, Ascetic сказал:

Отменить вывод всех предупреждений для Place & Route.

Это тоже самое, что закрыть глаза. Не мой путь. Мой я указал выше.

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


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

В 25.05.2024 в 18:33, Zversky сказал:

Не нашёл ничего лучшего, чем вывести на неиспользуемый вывод

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

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


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

В 25.05.2024 в 18:33, Zversky сказал:

Не нашёл ничего лучшего, чем вывести на неиспользуемый вывод

Не все йогурты варнинги одинаково полезны :)

У Вас используется аппаратный блок, с его портами ввода-вывода. Может так оказаться, что не все эти порты требуются в Вашем проекте. Вы их не используете (ну, например, не нужен Вам выход lock). Среда разработки честно предупреждает, что такие-то и сякие входные порты аппаратного блока не имеют драйвера, а выходные - ничем не управляют. Вы анализируете эти предупреждения, и поверяете - или у Вас все так и задумано, или Вы что-то забыли подключить к PLL. Ну и если все так и задумано, то оставляете эти варнинги как есть.

То есть, другими словами: принять предупреждения к сведению - это не то же самое, что игнорировать предупреждения.

Полностью избавляться от варнингов - не самоцель, ИМХО...

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


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

6 часов назад, StewartLittle сказал:

То есть, другими словами: принять предупреждения к сведению - это не то же самое, что игнорировать предупреждения.

А принятые к сведению засапрессить, чтобы не загромождали вывод и не маскировали другие сообщения (предупреждения). Когда в выхлопе болтается три сотни предупреждений, которые просмотрены и приняты к сведению, увидеть новое, возможно, важное, может оказаться затруднительно. Хорошо, если инструмент позволяет это делать. Иначе приходится самостоятельно наворачивать постпроцессинг лога.

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


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

20 часов назад, dxp сказал:

увидеть новое, возможно, важное, может оказаться затруднительно

Так китайцы так и сделали - при отключении всех предупреждений, как я показал в посте, все важные, с точки зрения трассировщика, предупреждения будут выводиться вне зависимости от параметра "Show All Warning".
Это легко проверить имитированием предупреждений, к примеру, TA1001, TA1004,...
При этом, все предупреждения, типа "висячих" выходов, пропадут, а "висячие" входы будут с успехом отлавливаться синтезатором.

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


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

3 часа назад, Ascetic сказал:

Так китайцы так и сделали - при отключении всех предупреждений, как я показал в посте, все важные, с точки зрения трассировщика, предупреждения будут выводиться вне зависимости от параметра "Show All Warning".

Некоторые важные с точки зрения трассировщика могут оказаться не важными на самом деле, и их достаточно будет принять к сведению -- и скрыть. Если инструмент этого не позволяет, придётся это делать руками.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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