Несколько вопросов о проводах с частным именем в Yosys

В одном из проектов, которые я скомпилировал с использованием Yosys, я увидел, что у нас могут быть частные провода (провода с частным именем). Например, $0_s0[127:0]. Итак, у меня есть несколько вопросов о них:

  1. почему у нас есть частные провода в Yosys (какие сценарии)?

  2. всегда ли он конвертируется в уникальное имя. Например, когда я выкидываю весь дизайн (используя write_verilog), он дает мне то же имя, что и когда я выкидываю только модуль, содержащий этот приватный провод?

1 ответ

Решение

почему у нас есть частные провода в Yosys (какие сценарии)?

потому что нам нужен механизм для создания имен для промежуточных проводов. В выражении, как assign x = (a+b)+c; будет провод, содержащий результат (a+b)и этому проводу понадобится имя.

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

всегда ли он конвертируется в уникальное имя. Например, когда я выкидываю весь дизайн (используя write_verilog), он дает мне то же имя, что и когда я выкидываю только модуль, содержащий этот приватный провод?

Нет.

Используйте команду как rename -enumerate на самом деле давать публичные имена этим проводам, если вы заботитесь о такой последовательности между различными выходными файлами.

Другие вопросы по тегам