Kraklog

Day15~16. Verilog 시작 /Adder, 4x4 mult 본문

[Harman] 하만 반도체 설계/VerilogHDL

Day15~16. Verilog 시작 /Adder, 4x4 mult

Krakens 2023. 7. 25. 21:58
728x90

프로그램 : Quaturs Prime lite edition 18.1

사용문법 : Verilog 2001

실습 목표 : 8x8 multiplexer build

 

Diagram

 

8x8 mux를 기본 논리게이트와 컨트롤을 구성하여 처음부터 작성하는것이 현재 최종 목표이다.

 

 

 

1.Adder

 

16bit - adder

module adder (
input [15:0] dataa,
input [15:0] datab,
output [15:0] sum
);
assign sum = dataa + datab;
endmodule

 

 

16bit - tb_adder

module tb_adder ();

  reg  [15:0] dataa  ;
  reg  [15:0] datab  ;
  wire [15:0] sum    ;

  adder uAdder (

    .dataa(dataa),
    .datab(datab),
    .sum(sum)
  );

  initial begin
        dataa = 16'd7; datab = 16'd5;
		#20 dataa = 16'd0; datab = 16'd1;
		#10 dataa = 16'd8; datab = 16'd2;
  end
  
endmodule

 

 

입력 값 A, B에 따라 덧셈 결과인 값이 제대로 출력 됨을 알 수 있다.

 


4x4 mult

 

module mult4x4 (
  input   [3:0] dataa  ,
  input   [3:0] datab   ,
  output  [7:0] product  
); 

assign product = dataa * datab;

endmodule

module tb_mult4x4 ();

  reg   [3:0]   dataa   ;
  reg   [3:0]   datab   ;
  wire  [7:0]   product ;

  mult4x4 uMult4x4(

    .dataa(dataa),
    .datab(datab),
    .product(product)  
  );  

  initial begin
    dataa = 4'd0;
    datab = 4'd3;
  forever 
    #10 dataa = dataa + 1;
  end

endmodule

테스트 벤치상 dataB를 3으로 고정, dataA의 입력값의 변화에 따라 곱셉 값을 출력 받음을 알 수 있다.

728x90

'[Harman] 하만 반도체 설계 > VerilogHDL' 카테고리의 다른 글

Day21. 4bit 7-segment, 16bit register, 2bit Counter  (0) 2023.07.28
Day20. 7-segment  (0) 2023.07.28
Day19. Function Counter  (0) 2023.07.28
Day18. my_rotate  (0) 2023.07.28
Day17. Mux4, Shifter  (0) 2023.07.25