Заполните хвост литерала всем системным логом 0

#system-verilog #literals

Вопрос:

Я очень новичок в SystemVerilog. Я хотел использовать довольно длинный буквальный в качестве маски. Этот литерал имеет длину 18 байт, и единственная соответствующая часть относится к наиболее значимым байтам, так как 14 наименее значимых байтов должны быть равны всем 0. Писать 'h00000FFC00000000000000000000000000 довольно утомительно. Есть ли лучший способ сделать это?

Ответ №1:

Оператор потоковой передачи слева оправдывает наиболее значимые биты.

 dest = {>>{32'h0000_0FFC}};
 

Ответ №2:

Проблему можно легко устранить с помощью объединения. Для примера, который я показал в вопросе, это было бы так:

{32'h0000_0FFC, 112'b0}