Study materials

@ CAD and SoC Design Lab in POSTECH

1. Tools

Git

깃은 코드 관리, 버전 관리를 위해 필수 불가결한 도구로 사용되고 있습니다. 다루는 코드가 많고, 방대해지면 자신을 믿을 수 없게 됩니다. 협업에서도 중요한 역할을 합니다. Summary-1 & Summary-2 | 웹말고 다운 받아 보세요

아래의 강좌를 추천합니다. GUI 때문에 Window에선 Souretree를 이용하면 편리하고, 서버에서는 Git CLI 명령어를 숙지하시면 됩니다.

X-Shell을 통해 서버 접속하기

서버에 접속하기 위해 터미널(X-Shell, Putty 등)을 이용합니다.

VNC를 통해 서버 접속하기

응답속도가 빠른 GUI가 필요한 경우 VNC를 이용해 서버에 접속합니다.

Vim

서버에서 텍스트 편집기 Vim을 주로 사용합니다.

Visual Studio Code

Linux

Tcl & Using Tool without GUI

Tcl (Tool Command Language)은 Front-end, Back-end 등에서 사용할 툴들을 조작하는데 사용됩니다.

Screen

Screen은 리눅스에서 코드를 장시간 안정적으로 돌리기 위해 사용합니다. 스크린을 사용하지 않을 경우 사용 중인 터미널(X-Shell etc)을 끄거나 인터넷연결이 끊어지면 다시 코드를 돌려야합니다.

  • Screen Summary
  • Screen Copy mode, 스크린 재 접속 후 위에 어떤 작업이 진행됬는지 확인하기
    • Entering Copy Mode and Scrolling
      • By default, enter copy mode with CRTL+a then ESC. You can use vi like commands to navigate through the scollback buffer. The arrows and PAGE UP/DOWN should works as well.

Link File 생성 [1], [2], [3]

윈도우의 바로가기와 비슷한 개념입니다. 크게 Hard Link, Softlink (symbolic link) 두 가지 링크 파일이 존재합니다.

  • 링크 생성하기
사용법: $ ln [옵션] 원본 링크
하드링크 $ ln 원본 링크 
소프트링크 $ ln -s 원본 링크 
  • 소프트링크 삭제하기
    • rm -f 로 삭제
    • 마지막에 /를 붙이면 안됨
    • 🌟 원본 폴더를 삭제하지 않도록 주의해야함 아래 명령어 수행시 원본파일 삭제됨

      $ rm -rf myfolderlink/ --> Bad End


2. How to make a chip? | Front-end and Back-end of hardware design

하드웨어란?

범용적으로 사용할 수 있는 소프트웨어와 달리 하드웨어는 특수한 목적으로 동작하는 장치입니다. 만드는데 오랜 시간과 많은 비용이 소모되지만 저전력으로 높은 성능을 얻을 수 있어 하드웨어를 사용합니다. 하드웨어는 개발 단계가 진행될 수록 버그를 찾기 힘들며, 수정하기 어렵고, 수정 비용이 크게 증가합니다. 따라서 각각의 개발 프로세스를 이해하고 준수하는 일이 무엇보다 중요합니다. 하드웨어를 설계하는 과정은 크게 Front-end와 Back-end 두 가지로 구분할 수 있습니다. Front-end는 하드웨어의 스펙과 동작을 정의해서 논리 회로로 구성된 netlist를 만들어내는 과정이며, Back-end는 설계된 로직을 실제 Die로 배치하는 등의 물리적인일을 담당합니다. 빌딩을 짓는 과정으로 예를 들면 건물의 크기 등의 스펙을 결정한 후 캐드등의 툴을 사용해서 도면을 그려보는 과정이 front-end 입니다. 설계 의도에 따라 아파트가 될 수 도있고 주상복합이 될 수있는 것처럼 어떤 하드웨어를 만들 것인지 명확한 정의가 필요한 과정입니다. 이어서 도면과 설계도를 기반으로 건물을 완성하는 과정이 back-end 입니다. 일을 하는 순서, 혹은 재료를 공급하는 시기 적절함에 따라 작업의 효율성이 달라질 수 있으며, 마감 처리등에 따라 완성도 (성능)가 달라질 수 있습니다. back-end는 설계 의도를 반영해서 물리적인 하드웨어 chip을 만드는 과정입니다. Ref

2.1 Front-end - HDL (Verilog Coding)


2.2 Back-end --> Algorithm

2.3 Common skills

C언어


Embedded boards


Python


3. Application: Deep Learning / AutoML/ Pytorch


AutoML


GNN


XAI, SHAP


4. Tools: LaTeX / Power Point / Excel / etc.

LaTeX

% Rotaing Table: use `sidewaystable` from the `rotating` package
\usepackage{rotating}

\begin{sidewaystable}
    \centering
    \caption{Your caption here}
   \begin{tabular}{ll}
    First First & First Second\\
    Second First & Second Second
    \end{tabular}
\end{sidewaystable}
% Definition on the main file
\definecolor{applegreen}{rgb}{0.55, 0.71, 0.0}
\definecolor{azure(colorwheel)}{rgb}{0.0, 0.5, 1.0}

\newcommand{\rone}[1]{\textcolor{applegreen}{#1}}
\newcommand{\sh}[1]{\textcolor{azure(colorwheel)}{[SH: #1]}}
\newcommand{\shrev}[2]{\textcolor{azure(colorwheel)}{\sout{#1}[SH: #2]}}

% How to use it 
\rone{Test} 
\shk{the}
\shkrev{conformable}{their respective} output
\usepackage{hyperref} 
\hypersetup{ colorlinks=false, linkcolor=red, filecolor=magenta, urlcolor=cyan, citecolor=green }
  • LaTeX Symbols1 & LaTex Symbols2
  • In a math environment, LaTeX ignores the spaces you type and puts in the spacing that it thinks is best. LaTeX formats mathematics the way it's done in mathematics texts. If you want different spacing, LaTeX provides the following four commands for use in math mode:
\; - a thick space
\: - a medium space
\, - a thin space
\! - a negative thin space

Other Tools


ETC.