Что такое "сеть" в синтезе ЛПВП?
Я новичок в синтезе схем, и я часто сталкивался с словом net, но мне так и не удалось найти его стандартное определение. Мне кажется, что это относится к любому виду "черного ящика", где он получает входные данные и производит выходные данные. Таким образом, это может быть подсхема внутри большой цепи, и это может быть массив ворот. Правильно ли мое понимание?
1 ответ
Нет, ваше понимание неверно.
Verilog
В Verilog сеть имеет точное определение:
IEEE 1800-2012 гласит:
6.5 Сети и переменные
Существует две основные группы объектов данных: переменные и сети. Эти две группы отличаются тем, как они назначены и содержат значения.
Сеть может быть записана одним или несколькими непрерывными назначениями, примитивными выходами или через порты модуля. Результирующее значение нескольких драйверов определяется функцией разрешения типа сети. Сеть не может быть назначена процедурно.
Сеть может быть одного из многих типов, например: wire
, supply0
, wand
, но, безусловно, самый распространенный тип wire
,
IEEE 1800-2012 продолжает:
Переменные могут быть записаны одним или несколькими процедурными утверждениями, включая процедурные непрерывные присвоения. Последняя запись определяет значение. Альтернативно, переменные могут быть записаны одним непрерывным присваиванием или одним портом.
Основное различие между поведением переменной и сети заключается в их поведении при назначении из более чем одного места, что выделено жирным текстом в двух кавычках:
Для сети, если вы назначаете ее из более чем одного места, ее результирующее значение определяется функцией разрешения, которая для встроенных типов сети (wire
так далее). Поведение функции разрешения зависит от типа сети, и в этом разница между типами сетей. Так, например, с wire
если оба 1'b0
а также 1'b1
присваивается ему, итоговое значение будет 1'bx
(неизвестно), если оба назначения присваивают значения с одинаковой силой. Функция разрешения предназначена для моделирования реальной электроники. (Существует также дополнительное усложнение пользовательских типов сетей и мощностей дисков, но давайте оставим их для этого обсуждения.)
Для переменной, если вы присваиваете ее более чем из одного места, ее результирующее значение определяется тем значением, которое записано последним (как обычная программная переменная). Так, например, если 1'b0
назначается, а затем 1'b1
назначено, результирующее значение будет 1'b1
потому что это значение было назначено последним. Здесь нет ни функции разрешения, ни концепции силы привода.
И сети, и переменные используются для моделирования комбинационной логики и последовательной логики. Существуют правила, когда вы можете использовать сеть и когда вы можете использовать переменную, и выбор того, который использовать, регулируется этими правилами (приведены в цитатах выше). Они были строгими в verilog, но были смягчены в System-Verilog до такой степени, что, если вы не проектируете с использованием логики трех состояний, вам не нужны сети в System-Verilog.
VHDL имеет точно такое же различие. VHDL-эквивалент сети Verilog является сигналом; VHDL-эквивалент переменной Verilog - это переменная. Тем не менее, правила использования VHDL отличаются и более строгие (что неудивительно).
электроника
В электронике сеть означает кусок металла, через который течет ток. Другими словами, сеть - это связь между одним местом и другим. Физически это может быть дорожка печатной платы, кабель, соединительный провод или металлическое соединение на ИС. Как правило, в цифровой электронике это больше всего похоже на металлическое соединение на микросхеме.
Синтез
Таким образом, чтобы ответить на ваш вопрос, если кто-то использует термин "сеть", когда говорит о выходных данных логического синтезатора (список соединений уровня шлюза), он почти наверняка подразумевает вторую идею: конструировать в любом формате этот список соединений уровня шлюза. использует, что моделирует соединение между одним воротом и другим. Поскольку синтезаторы обычно выводят свой список соединений уровня шлюза как Verilog, эти соединения между шлюзами, вероятно, в любом случае моделируются с использованием сетей Verilog (возможно, wire
с).