Quality control (1)/Verilog

Verilog - Synthesis (full_adder_dataflow) / LUT / truth table

빈그레 2023. 3. 20. 20:41

 

 

 


Synthesis

 

 

 

 

full_adder_dataflow

 

module full_adder_dataflow(
    x,y,c_in,
    sum,c_out
     );
    
input x,y,c_in;
output sum,c_out;

assign {c_out,sum}=x+y+c_in;

endmodule

 

 

위 코드를 작성하고 schematic을 확인하면 위와 같이 RLD_ADD를 확인할 수 있으나, RTL_ADD가 실제로 어떤 gate들로 이루어지는지 알 수 없다. 이 때 Verilog code의 gate합성을 확인할 수 있는 도구가 바로 sythesis이다.

 

 

 

 

 

Synthesis

 

: High-level language 를 Low-level language로 변환하는 것을 일반적으로 Synthesis라고 한다.

  디지털 시스템 설계에서의 Synthesis는 verilog / VHDL 코드를 gate-level netlist로 변환하는 과정을 말한다.

 

 

(Vivado synthesis 유의사항)

- synthesis하려는 module이 top module로 설정되었는지 확인하고 top이 아닐경우에 as a top 클릭한다.

- number of jobs는 사용할 core수를 결정하는 것이다. 최대개수 혹은 최대개수보다 하나 적은 것을 선택한다.

 

 

 

full_adder_dataflow's synthesis  -> schematic

 

synthesis를 통해 gate level로 변경해준 뒤에 schematic을 통해 module이 다음과 같이 합성된 것을 확인할 수 있다.

 

- IBUF / OBUF

 : analog 회로 레벨에서 Delay개선을 위해 필요한 buffer로, 자동으로 생성된다.

 

 

 

 

LUT ( Look Up Table )

 : ( FPGA의 장점으로, gate level로 합성하는 것보다 LUT에서 값을 읽는 것이 더 빠르고 POWER소모가 적다. )

 

LUT stands for "Look-Up Table", which is a type of data structure used in computer science and digtal signal processing. A Look-Up Table is essentially a pre-calculated table that maps input vales to output vales based on a given function or algorithm.

 

 

 

 

 

Truth table 확인 방인 방법

 

 : schematic에서 LUT 부분을 클릭하고 좌측 Cell Properties -> Truth Table 클릭!