2015-10-28 2 views
0

мне нужно сделать знаковое от 4 битного числа на 32-битовое число .. поэтому я стараюсь повторить время MSB 28, чтобы выглядеть следующим образом:знаковое расширение с помощью конкатенации

assign x={28'b{a[3]},a[3:0]}; 

но ошибка в том, что :

ошибка синтаксиса возле "{"

х определяется как: wire [31:0] x ; а определяется как: input [3:0]a;

Это конкатенация в неправильной реализации, или в чем причина этой конкретной ошибки?

+0

Оператору репликации всегда предшествует постоянная ** репликации **, заключенная в фигурные скобки '{}'. Итак, удалите '' b', и все. – sharvil111

ответ

5

Вы должны избавиться от 'b и добавить еще пару {}:

assign x = { {28{a[3]}}, a}; 

Обратитесь к IEEE Std 1800-2012, раздел 11.4.12.1 "оператор репликации".

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