Возможно ли иметь два экземпляра с одинаковым именем в списке соединений?

Возможно ли иметь два флопа/любые другие экземпляры с одинаковым именем в нетлисте?

Учитывая, что иерархии нет, скажем, у меня есть дизайн из 10 миллионов экземпляров и существует флоп с именем foo, возможно ли, что другой флоп имеет такое же имя «foo»?


person Hemant Bhargava    schedule 27.02.2019    source источник
comment
Это гипотетическая путаница или попытка понять что-то конкретное, что вы наблюдаете или хотите достичь? В нынешнем виде мы можем только догадываться о том, о чем вы спрашиваете.   -  person Sean Houlihane    schedule 27.02.2019
comment
@SeanHoulihane, я подумал, что это прямой вопрос: можем ли мы иметь два идентификатора с одинаковым именем в списке соединений или нет?   -  person Hemant Bhargava    schedule 27.02.2019
comment
Повторяю, это мысленный эксперимент или реакция на реальный мир. Если вы поделитесь своим контекстом, мы можем увидеть недоразумение. Помните, мы ничего не знаем о вашем опыте или прошлом. Все сейчас думают: «Почему он задает этот вопрос, все догадываются, что ответ отрицательный».   -  person Sean Houlihane    schedule 27.02.2019


Ответы (3)


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

person dave_59    schedule 27.02.2019
comment
Даже с клонированием? - person Hemant Bhargava; 27.02.2019
comment
В SystemVerilog нет оператора клонирования. - person dave_59; 27.02.2019

Как говорит Дэйв, нет. Но если бы у вас было 10 миллионов экземпляров, вы бы не закодировали это вручную, это сделал бы ваш логический синтезатор. И он не выведет недопустимый список соединений.

person Matthew Taylor    schedule 27.02.2019

Единственный способ, которым ваш вопрос имеет смысл, - это рассмотреть один большой файл verilog - очевидно, здесь не может быть более одной рег/логики с именем foo. Это фундаментально для правил области видимости Verilog.

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

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

person Sean Houlihane    schedule 27.02.2019