LEVEL0 - Scalar & Vector

정다훈·2025년 6월 19일

Verilog study

목록 보기
3/6

[L0-P03] Vector - Introduction to Examples, About vector & scalar, Problem Solving 10min

My Code

module vector (
  input [3:0] vector_0_in,
  input scala_1_in,
  input [12:0] vector_2_in,
  input [3:0] vector_3_in_0,
  input [3:0] vector_3_in_1,
  input [3:0] vector_3_in_2,
  output scala_0_out_0,
  output scala_0_out_1,
  output scala_0_out_2,
  output scala_0_out_3,
  output [3:0] vector_1_out,
  output [6:0] vector_2_out,
  output [11:0] vector_3_out
);

  assign scala_0_out_0 = ~vector_0_in[0];
  assign scala_0_out_1 = ~vector_0_in[1];
  assign scala_0_out_2 = ~vector_0_in[2];
  assign scala_0_out_3 = ~vector_0_in[3];
	
  //wrong answer
  assign vector_1_out = ~scala_1_in;

  assign vector_2_out[0] = ~vector_2_in[0];
  assign vector_2_out[1] = vector_2_in[1] & vector_2_in[2];
  assign vector_2_out[2] = ~(vector_2_in[3] & vector_2_in[4]);
  assign vector_2_out[3] = (vector_2_in[5] | vector_2_in[6]);
  assign vector_2_out[4] = ~(vector_2_in[7] | vector_2_in[8]);
  assign vector_2_out[5] = (vector_2_in[9] ^ vector_2_in[10]);
  assign vector_2_out[6] = ~(vector_2_in[11] ^ vector_2_in[12]);

  //wrong answer
  assign vector_3_out[0] = ~vector_0_in[0];
  assign vector_3_out[1] = ~vector_0_in[1];
  assign vector_3_out[2] = ~vector_0_in[2];
  assign vector_3_out[3] = ~vector_0_in[3];
  assign vector_3_out[4] = ~vector_1_in[0];
  assign vector_3_out[5] = ~vector_1_in[1];
  assign vector_3_out[6] = ~vector_1_in[2];
  assign vector_3_out[7] = ~vector_1_in[3];
  assign vector_3_out[8] = ~vector_2_in[0];
  assign vector_3_out[9] = ~vector_2_in[1];
  assign vector_3_out[10] = ~vector_2_in[2];
  assign vector_3_out[11] = ~vector_2_in[3];


endmodule

Answer code

// first method
assign vector_1_out = {scalar_1_in, scalar_1_in, scalar_1_in, scalar_1_in};

// second method
assign vector_1_out = {4{scalar_1_in}};

// vector를 묶어서 표현
assign vector_3_out = {vector_3_in_0, vector_3_in_1, vector_3_in_2};

0개의 댓글