bit select语法很直观,就没什么问题,问题在part select有两种写法。vector_part_select.v / Verilog
module vector_part_select (
input [3:0] SW,
output [17:0] LEDR
);
assign LEDR[1:0] = SW[3:2] & SW[1:0];
assign LEDR[3-:2] = SW[3-:2] | SW[1-:2];
endmodule
同样是对vector作part select取2 bit,第6行的SW[1:0]是从1bit取到0 bit,而第7行的SW[1-:2]是从1bit向右取2 bit,其实意义都一样,只是写法不同,较常见的是第6行的写法,不过第7行的写法也合法。
Conclusion
这是Verilog 2001较新的写法,不过在Quartus II 7.2 SP3已经支持,可安心使用 |