Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Verilog

Типы данных 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

  1. Переменные C# и (примитивные) типы данных
  2. Типы данных С++
  3. C Типы данных
  4. Типы данных Python
  5. Типы данных Java (примитивные)
  6. 5 различных типов центров обработки данных [с примерами]
  7. 8 различных типов облачных вычислений в 2021 году
  8. 8 различных типов утечек данных с примерами
  9. Учебник Verilog
  10. Конкатенация Verilog