2016-01-12 5 views
0

Это то, что я пытаюсь сделать в VHDL:VHDL: Как назначить «диапазон целых чисел от 0 до 99», как новое имя типа как ЬурейеЕ используется в C++

type score is integer range 0 to 99; 
type speed is integer range 0 to 99; 

Но я думаю, что я принципиально непонятно, как «тип» работает в VHDL, поскольку инструмент генерирует ошибку. Он говорит near "integer": syntax error. Я думал, что тип в VHDL похож на typefed в C++, но, похоже, это не так. Каков правильный способ объявить «балл» и «скорость» как типы, оба из которых являются внутренне просто целочисленным диапазоном от 0 до 99?

+3

Drop * integer * from both declarations. См. IEEE Std 1076-2008 6.2. Типовые объявления. И оговорка: «Вы уверены, что хотите это сделать?» (а не целочисленный подтип, удаляющий * integer *, создает новый тип, который несовместим с целым числом. 'subtype score - целочисленный диапазон от 0 до 99;' создает то, что есть. – user1155120

+0

Да, я использовал подтип, и он сработал! Теперь я лучше понимаю разницу между типом, подтипом и псевдонимом. – quantum231

+0

Итак, теперь я понимаю, что есть два способа сделать это, но использование типа создаст то, что не может рассматриваться как целое – quantum231

ответ

0

Тип создает новый тип, который вообще не имеет отношения к существующим типам. Псевдоним - это просто другое имя, назначенное объекту, который уже существует как сигнал или переменная. Подтип создает тип из существующего типа, например, раздел целочисленного диапазона или стандартный логический вектор с определенным количеством бит.

Таким образом, чтобы сделать то, что требуется для этого вопроса, нужно использовать подтип, а не тип или псевдоним.

 Смежные вопросы

  • Нет связанных вопросов^_^