오늘은 맑음

디지털 회로 설계 과정(Front End) 본문

Digital logic

디지털 회로 설계 과정(Front End)

자전거 타는 구구 2021. 6. 13. 20:29
반응형

오늘은 디지털 회로 설계 과정 중 Front-End 과정에 대해서 알아보겠습니다.
설계 과정은 간단하게 Front End 과정과 Back End 과정으로 나눌 수 있습니다.
Front End과정은 VHDL/Verilog HDL을 통해서 설계한 디자인을 합성해서 gate단위의 netlist로 만드는 과정입니다.
Back End과정은 합성을 통해 나온 netlist를 Chip으로 만들기 위해 module의 위치정보와 wire를 연결하는 과정(Place & Routing)과 P&R과정을 거쳐 나온 디자인에 대해 timing violation(setup/hold violation)이 문제가 없는지 Timing Analysis를 수행하는 과정입니다.

Front End

디자인

  • 무엇을 설계할지 전체적인 구조를 디자인 하는 단계

설계

  • VHDL/Verilog HDL을 이용해서 디자인 한 구조를 설계하는 단계

시뮬레이션(RTL-Simulation)

  • RTL Simulation 단계
  • VHDL/Verilog HDL을 이용해서 설계한 디자인을 검증(verification)
  • 검증 단계에서는 testbench를 이용해서 의도한 동작을 수행하는지 테스트
    • testbench는 주로 System Verilog를 이용해서 구성(verification에 매우 용이)

보드 검증

  • Xilinx 혹은 Intel Altera 보드를 이용해서 검증
  • RTL Simulation의 경우 delay를 줘서 테스트를 수행하긴 하지만 물리적인 상황은 반영되지 않는 이상적인 상황이기 때문에 실제 상황과 더 유사한 FPGA를 이용해서 추가 검증을 수행
  • RTL-Simulation의 경우 테스트 속도가 매우 느리기 때문에 속도가 빠른 FPGA를 이용해서 더욱 빠르게 검증을 할 수 있음

* LINT/CDC 체크
합성하기 전에 LINT(디버깅 오류)와 CDC(Clock Domain Crossing)등을 체크
일반적으로 Synopsys의 SpyGlass라는 툴을 이용해서 코드 내에 LINT가 있지 않는지 혹은 서로 다른 Clock Domain을 사용한다면 CDC 문제가 발생하지 않는지 합성 이전에 미리 체크하고 합성단계로 넘어감

합성(Synthesis)

  • VHDL/Verilog HDL을 이용해서 작성된 디자인을 Gate수준의 Netlist로 변경
  • 타겟 합성 라이브러리의 정보를 이용
    • 라이브러리에 따라서 합성 결과가 달라짐(Samsung, TSMC, Global Foundary/27ns, 12ns, 7ns 등..)
  • 합성을 통해 우리의 디자인이 목표한 타겟 동작 주파수에 만족하는지, 디자인의 크기(area)가 얼마나 크게 나오는지 등 많은 정보를 확인할 수 있음
    • 타겟 동작주파수를 만족하지 않거나 합성 결과의 크기가 너무 크게 나오는 경우 다시 설계과정으로 돌아가 RTL을 수정하는 과정을 반복

* 합성은 Design Compiler를 주로 사용하는데 위에서 서술한 내용 말고도 매우 많은 내용이 들어있습니다. 아직 학부생이라면 Design Compiler관련 교육이 있다면 꼭 들어보시길 권합니다. 이론적인 내용 말고도 script/tcl 관련해서도 많은 내용들이 들어있어 설계쪽으로 진로를 정하셨다면 많이 공부하시면 좋습니다. 저도 많이 알지 못해 기회가 될 때 마다 공부하려고 노력하고 있습니다.

여기까지 디지털 회로 설계의 Front End 과정에 대해 알아보았습니다.
저는 Back End과정은 하고있지 않기 때문에 추후에 자세히 알아보고 공유해보겠습니다.

전체적인 설계 과정은 IDEC에서 공개한 영상을 참조 바랍니다.
https://www.youtube.com/watch?v=IK3FBYoUAh4&t=4s

Design Flow 1

https://www.youtube.com/watch?v=YNzJ-IHDQ7M

Design Flow 2


* 잘못된 내용이나 추가하면 좋을 내용이 있다면 댓글로 부탁드립니다!

반응형

'Digital logic' 카테고리의 다른 글

Verilog HDL random, random 신호 생성하기  (2) 2022.04.03
CMOS 동작 원리와 장/단점  (0) 2022.01.09
active high와 active low  (2) 2021.05.16
Combinational feedback loop란  (3) 2021.05.09
Clock Skew(클록 스큐)  (0) 2021.05.03
Comments