The following code is correct and successfully complied.
module top_module (
input [4:0] a, b, c, d, e, f,
output [7:0] w, x, y, z );//
assign {w,x,y,z} = {a,b,c,d,e,f,2'b11};
endmodule
The next is wrong, which is confusing.
module top_module (
input [4:0] a, b, c, d, e, f,
output [7:0] w, x, y, z );//
assign w = {a,b[2:0]};
assign x = {c[4:3],b[2:0]};
assign y = {c[4:3],d[2:0]};
assign z = {d[4:3],2'b11};
endmodule
Why is it wrong when I separately assign the output values?
By the way, here's the original problem:
Given several input vectors, concatenate them together then split them up into several output vectors. There are six 5-bit input vectors: a, b, c, d, e, and f, for a total of 30 bits of input. There are four 8-bit output vectors: w, x, y, and z, for 32 bits of output. The output should be a concatenation of the input vectors followed by two 1 bits:
I've tried so many times, and I just can't assign values to them separately.
