Типы данных Verilog
Основное предназначение типов данных в языке Verilog состоит в том, чтобы представлять элементы хранения данных, такие как биты в триггере, и элементы передачи, такие как провода, соединяющие логические вентили и последовательные структуры.
Какие значения содержат переменные?
Почти все типы данных могут иметь только одно из четырех различных значений, указанных ниже, за исключением 00
. и 15
типы данных.
0 | представляет собой логический ноль или ложное условие |
1 | представляет собой логическую единицу или истинное условие |
х | представляет неизвестное логическое значение (может быть нулем или единицей) |
з | представляет состояние высокого импеданса |
На следующем изображении показано, как эти значения представлены на временных диаграммах и сигналах моделирования. Большинство симуляторов используют это соглашение, где красный означает 29
и оранжевый посередине означает высокое сопротивление или 32
.
Что означает набор значений Verilog?
Поскольку Verilog в основном используется для описания аппаратных элементов, таких как триггеры, и комбинационной логики, такой как NAND и NOR, он должен моделировать систему ценностей, присутствующую в аппаратном обеспечении. Логическая единица будет представлять напряжение питания Vdd. которое может варьироваться от 0,8 В до более чем 3 В в зависимости от узла технологии изготовления. Логический ноль будет представлять землю. и, следовательно, значение 0V.
44
или 51
означает, что значение просто неизвестно в данный момент и может быть либо 0, либо 1. Это сильно отличается от того, как 64
обрабатывается в логической логике, где означает "не важно".
Как и в любой незавершенной электрической цепи, провод, который ни к чему не подключен, будет иметь высокий импеданс в этом узле и обозначается 71
или 82
. Даже в Verilog любой неподключенный провод приведет к высокому импедансу.
Сети и переменные
Сети и переменные две основные группы типов данных, которые представляют разные аппаратные структуры и различаются способом назначения и сохранения значений.
Сети
Сети используются для соединения между аппаратными объектами, такими как логические вентили, и, следовательно, не хранят никаких значений сами по себе. На изображении, показанном ниже, цепь с именем net_11 используется для соединения выхода логического элемента И с первым входом триггера с именем data_0. Аналогичным образом два входа логического элемента И подключаются к цепям net_45 и net_67.
Существуют разные типы сетей, каждая из которых имеет разные характеристики, но наиболее популярная и широко используемая сеть в цифровых образцах имеет тип 97
. 105
это тип данных Verilog, используемый для соединения элементов и цепей, которые управляются одним вентилем или непрерывным назначением. 114
похож на электрический провод, который используется для соединения двух компонентов на макетной плате.
Когда требуется несколько цепей, их можно сгруппировать вместе, чтобы сформировать один 123
. На изображении, показанном ниже, у нас есть 4-битный провод, который может отправлять 4 отдельных значения по каждому из проводов. Такие объекты с шириной более 1 называются векторами, как мы увидим в следующей статье.
06
Недопустимо повторно объявлять имя, уже объявленное сетью, параметром или переменной, как показано в приведенном ниже коде.
15пре>Переменные
С другой стороны, переменная является абстракцией элемента хранения данных и может содержать значения. Триггер — хороший пример элемента хранения.
Тип данных Verilog
137
может использоваться для моделирования аппаратных регистров, поскольку он может хранить значения между назначениями. Обратите внимание, что146
не обязательно всегда представлять триггер, потому что его также можно использовать для представления комбинационной логики.На изображении слева у нас есть триггер, который может хранить 1 бит, а триггер справа может хранить 4 бита.
Другие типы данных
целое число
151
— переменная общего назначения шириной 32 бита, которую можно использовать для других целей при моделировании оборудования и хранения целочисленных значений.23время
А
165
переменная беззнаковая, 64-битная и может использоваться для хранения значений времени симуляции в целях отладки. А179
переменная просто хранит время как количество с плавающей запятой.37настоящий
А
181
переменная может хранить значения с плавающей запятой и может быть назначена так же, как190
и202
.45Пример
53Журнал моделирования66Строки Verilog
Строки хранятся в
213
, а ширина226
переменная должна быть достаточно большой, чтобы содержать строку. Каждый символ в строке представляет значение ASCII и занимает 1 байт. Если размер переменной меньше строки, то Verilog усекает крайние левые биты строки. Если размер переменной больше строки, Verilog добавляет нули слева от строки.78Вот полный пример, показывающий, как можно смоделировать три приведенные выше переменные.
85Обратите внимание, что str1 имеет правильный размер для хранения всех 11 байтов строки «Hello World», и, следовательно, вся строка будет напечатана. Однако str2 может хранить только 5 байтов, и, следовательно, верхние 6 байтов усекаются и в конечном итоге хранятся только «Мир». Третья переменная str3 больше 11 байт и дополняет пробелы слева, поэтому хранящееся в ней значение становится "Hello World".
Журнал моделирования95
Verilog
- Переменные C# и (примитивные) типы данных
- Типы данных С++
- C Типы данных
- Типы данных Python
- Типы данных Java (примитивные)
- 5 различных типов центров обработки данных [с примерами]
- 8 различных типов облачных вычислений в 2021 году
- 8 различных типов утечек данных с примерами
- Учебник Verilog
- Конкатенация Verilog