Как выполнить расширение бита в системе Verilog? - PullRequest
2 голосов
/ 01 апреля 2019

Я хочу реплицировать один бит для определенного времени, используя opreator репликации {}, но я получаю только первый бит, как я хочу, а другие - нули, равен ли бит нулю или единице.

module(logic output [7:0] a);
assign a={8{1}};
endmodule

Я получаюравно 00000001 Не 11111111

1 Ответ

3 голосов
/ 01 апреля 2019

В Verilog неосновной литерал (например, 1) является (а) десятичным, (б) знаковым и (в) 32-разрядным. Из-за (с),

{8{1}}

совпадает с

{8{32'sb00000000000000000000000000000001}}

- это 256-битное число, которое затем усекается до 8 бит, когда ему присваивается a. Вот почему вы получаете a равный 8'b00000001.

Вам нужно

{8{1'b1}}
...