Единственный способ, которым ваш вопрос имеет смысл, - это рассмотреть один большой файл verilog - очевидно, здесь не может быть более одного reg / logic с именем foo
.Это фундаментально для правил определения объема verilog.
Если в вашем проекте есть какая-либо итерация или локальная область видимости любой формы, процесс разработки создаст форму иерархии для обработки этой итерации.Если вы сгладите результирующий список соединений (по умолчанию или дизайн), то каждый элемент либо получит абстрактный уникальный идентификатор (n1, n2, n3 ...), либо будет предварительно / пост исправлен с некоторой иерархической информацией (gen_1_foo, gen_2_foo ...).
После генерации списка цепей может быть нетривиально связать конкретный флоп с его синтаксическим источником в verilog - но вы поняли это из-за отсутствия иерархии и структуры в дизайне.