Побитовая операция между скаляром и вектором - PullRequest
0 голосов
/ 24 октября 2019

Я изо всех сил пытаюсь найти способ применить побитовый оператор между скаляром и вектором, например:

logic [7:0] vec ;
logic scal;
logic [7:0] ans;
assign ans= vec | scal; // scal extend by appending zeros.  

здесь только ans [0] модифицирован, а остальные [7: 1] имеют нули. Мне нужно применить побитовый оператор в целом vec

Спасибо

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Было бы гораздо яснее показать смысл функциональности, чем пытаться писать в терминах логических выражений. Используйте условный оператор, который читается как if / else.

assign ans = scal ? '1 : ver;
1 голос
/ 24 октября 2019

Есть много способов снять шкуру с кролика. Я открою оператор репликации :

{  <N>  { <some value> } }

, который копирует <some value> N раз. Так что вам понадобится:

assign ans= vec | {8{scal}}; 
...