Что означает "(1) в SystemVerilog?

90
13

Я все еще начинаю свой SystemVerilog, но натолкнулся на странный код. У меня есть некоторые ранее написанные файлы, которые я просматриваю, компилирую и имитирую и т.д. Один из файлов всегда дает мне ошибку, у него есть код, который выглядит так:

assign next_empty_oh = empty_entries & ~(empty_entries - QUEUE_SIZE'(1));

Где QUEUE_SIZE является предопределенным параметром. Ошибка, которую он дает:

** Error: near "'": syntax error, unexpected '\'', expecting ';'

Это первый раз, когда я увидел нечто вроде '(1) и я не знаю, что это значит, и я не знаю, как его решить. Я использую Questa для моделирования.

Также о always_comb это дает мне ошибку для недопустимого назначения внутри него. Переменные определяются как output, нужно ли им быть reg или logic или что-то внутри блока always_comb для успешного назначения?

Благодарю.

спросил(а) 2021-01-25T14:25:38+03:00 4 месяца, 4 недели назад
1
Решение
77

ОК. Оказывается, Questa 10.2c не поддерживает его. Я просто попробовал его на ModelSim 10.4, и он работал и компилировался без ошибок. Благодарю.

ответил(а) 2021-01-25T14:25:38+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема