赋值:不能直接两个数组赋值。因为assign 语句不能用于数组的赋值。需要使用一个生成语句或者将数组分解为单独的端口后进行赋值。
生成语句案例:
genvar i;
generate
for (i = 0; i < 256; i = i + 1) begin : gen_cmd_ports
assign cmd[i] = data_buffer[i];
end
endgenerate
或者使用for语句
always @ (*) begin
if (!rst_n) begin
for (i = 0; i < 16; i = i+1) begin
UART_REG[i] <= 0;
end
end else begin
if (1)
UART_REG[num_r] <= cmd_data;
else
UART_REG[num_r] <= UART_REG[num_r];
end
end
单独端口案例:
即,将数组拆分成一个个单独的信号。