3.向量
3.1向量
3.2向量更详细
3.3矢量零件选择
3.4按位运算符
3.5四输入门
3.6向量串联运算符
3.7矢量反转
3.8复制运算符
3.9更多复制
3.1向量
module top_module (vec,outv,o2,o1,o0);
input wire [2:0]vec;
output wire [2:0]outv;
output o1,o2,o0;
assign outv=vec;
assign o2=vec[2];
assign o1=vec[1];
assign o0=vec[0];
endmodule
3.2向量更详细
module top_module (in,out_hi,out_lo);
input wire [15:0]in;
output wire[7:0]out_hi;
output wire[7:0]out_lo;
assign out_hi=in[15:8];
assign out_lo=in[7:0];
endmodule
3.3矢量零件选择
module top_module (in,out);
input wire [31:0]in;
output wire [31:0]out;
assign out={in[7:0],in[15:8],in[23:16],in[31:24]};
endmodule
3.4按位运算符
module top_module (a,b,out_or_bitwise,out_or_logical,out_not);
input wire [2:0]a,b;
output wire [2:0]out_or_bitwise;
output wire out_or_logical;
output wire [5:0]out_not;
assign out_or_bitwise=a|b;
assign out_or_logical=a||b;
assign out_not[2:0]=~a;
assign out_not[5:3]=~b;
endmodule
3.5四输入门
module top_module (in,out_and,out_or,out_xor);
input wire [3:0]in;
output out_and,out_or,out_xor;
assign out_and=& in;
assign out_or=| in;
assign out_xor=^ in;
endmodule
3.6向量串联运算符
module top_module (a,b,c,d,e,f,w,x,y,z);
input wire [4:0]a,b,c,d,e,f;
output wire[7:0]w,x,y,z;
assign {w,x,y,z}={a,b,c,d,e,f,2’b11};
endmodule
3.7矢量反转
module top_module(in,out);
input [7:0]in;
output [7:0]out;
assign out={in[0],in[1],in[2],in[3],in[4],in[5],in[6],in[7]};
endmodule
3.8复制运算符
module top_module(in,out);
input wire [7:0]in;
output wire [31:0]out;
assign out={{24{in[7]}},in};
endmodule
3.9更多复制
module top_module(a,b,c,d,e,out);
input a;
input b;
input c;
input d;
input e;
output wire[24:0]out;
wire [24:0]out_1;
wire [24:0]out_2;
assign out_1={{5{a}},{5{b}},{5{c}},{5{d}},{5{e}}};
assign out_2={5{a,b,c,d,e}};
assign out=out_1~^out_2;
endmodule