IC-CAD CAD 실험 Lecture 2 장재원
주문형반도체 (ASIC * ) 설계흐름도개요 Lecture 1 REVIEW ASIC Spec. Front-end design Logic design Logic synthesis Behavioral-level design Structural-level design Schematic editor *Analog 회로설계시 Transistor-level design Netlist FPGA 구현검증 Auto P&R layout Full-custom layout Back-end design Layout verification (LVS, DRC, ERC) Post-simulation Layout 설계 GDS file Fabrication & testing *ASIC(Application Specific Integrated Circuit)
실험준비사항 Lecture 1 REVIEW X-Config 를이용한 X-Win session 추가 Connection Method : rexec Session Name : 임의 Host Name : itsoc.yonsei.ac.kr Login : 자신의해당계정 ( train# ) Command : /usr/openwin/bin/xterm -ls -display $MYIP:0 또는 /usr/openwin/bin/xterm -ls -sb -sl 1000 -fn fixed -title itsoc -fg snow -bg DodgerBlue4 - display $MYIP:0 password : 계정과동일 Flags : Launch New Window 계정비밀번호수정 passwd
HDL 을이용한행위수준설계 HDL 개요 HDL(Hardware Description Language) Verilog HDL : C 언어와유사 VHDL : Ada 언어와유사 스키메틱방식 vs HDL 방식 스키메틱설계 HDL 설계장점 1 회로도입력에따른시간이많이요구 텍스트로입력하고설계툴에의한회로생성 설계시간에대 한단축 2 논리식의조작에대한생각이요구 논리식의조작에대한생각이필요가없음 (1/2 ~ 1/3) 3 회로의기능변경이어려움회로의기능에대한변경이쉬움완성도가향상 4 설계자자신만이회로도의내용을이해 설계자이외에도설계에대한이해가가능 설계결과물에 5 칩제작을하게되는공정에서제공하는대한재이용이특정공정과무관설계라이브러리를이용가능 6 작은크기의회로설계에용이 ( 직관적인설계 ) 작은크기의회로설계시비효율적임 - 7 논리게이트수준설계시 CAD툴의도움불필요 CAD 툴의도움없이는회로설계불가능 -
Verilog HDL 코드예 : 4 비트카운터 module counter(rst, clk, load, enb, din, dout) ; input rst, clk, load, enb; input[3:0] din; output[3:0] dout; reg[3:0] tmp; always@(posedge clk or negedge rst) begin if (~rst) tmp <= 0; else if (load) tmp <= din; else if (~enb) tmp <= tmp + 1; end assign dout = tmp; endmodule Verilog HDL 코드예
Verilog HDL 코드예 : 테스트벤치 Verilog HDL 코드예 `timescale 1 ns/1 ns module tb_cnt ; reg rst, clk, load, enb; reg[3:0] din; wire[3:0] dout; counter cnt(rst, clk, load, enb, din, dout); initial begin clk = 0; forever #50 clk = ~clk; end #5000 load = 1; din = 4'b1101; #500 load = 0; #500 enb = 1; #500 enb = 0; end endmodule initial begin rst = 0; load = 0; din = 4'b0; 4b0; enb = 1; #1001 rst = 1; #1000 enb = 0;
HDL 시뮬레이터 (Modelsim) 사용 Modelsim 명령어 vlib : 라이브러리디렉토리의생성 vlib 경로 / 작업디렉토리명 vmap : 작업디렉토리에대한환경설정 vmap 라이브러리명경로 / 작업디렉토리명 vlog : Verilog HDL 파일의컴파일 vlog [-work 라이브러리명 ] 경로 /verilog 파일 vsim : HDL 시뮬레이터의명령수행 옵션 : -c, -do do 파일, -L 라이브러리명, -sdf{min typ max}, -wlf 경로 /wave 파일, -view 경로 /wave 파일 vsim c do sim.do
Verilog HDL 참고문헌 교재의부록 B,C 부분 Verilog HDL - A Guide to Digital Design and Synthesis, Second Edition 저자 : Palnitkar 출판사 : Prentice Hall 한글판 : Verilog HDL - 디지털설계와합성의길잡이 ( 홍릉과학출판사 )
배치파일 (do 파일 ) 에사용하는명령어 Modelsim 명령어 log[-r] * : 시뮬레이션결과파형에지정된신호의파형을실어주는역할 [-r] 옵션을사용하면테스트벤치 & 내부모듈의신호까지포함됨 log 인스턴스명 / 신호명 log /T1/S1/test run [ 시뮬레이션시간 ] : 기록한시간동안시뮬레이션실행 add wave * : 테스트벤치에있는모든신호의파형을보여주는명령 add wave /T1/* quit : 시뮬레이터의종료
실험내용 1 : 작업디렉토리구성 Page 23~25
실험내용 1 : 작업디렉토리구성 cd : change directory mkdir : make directory. : current directory.. : parent directory / : directory separation ~ : root directory Example mkdir hdl_designdesign mkdir hdl_design/batch mkdir hdl_design/source cd hdl_design/batch cd../../hdl_design/source
실험내용 2 : Verilog HDL 을이용한설계 Page 24~30 mkdir hdl_design mkdir hdl_design/batch mkdir hdl_design/batch/sim mkdir hdl_design/batch/syn mkdir hdl_design/source mkdir hdl_design/results mkdir hdl_design/results/sim mkdir hdl_design/results/syn mkdir lib mkdir lib/syn_work
실험내용 2 : Verilog HDL 을이용한설계 Page 24~30 cd lib vlib sim_work vlib altera cd ~/hdl_design/batch/sim vmap work ~/lib/sim_work vmap altera ~/lib/altera cd ~/hdl_design/source vi counter.v 카운터파일작성 vi tb_cnt.v 테스트벤치파일작성
실험내용 3 : 시뮬레이션및결과파형저장, 결과파형보기 Page 24~30 cd ~/hdl_design/batch/sim vi vlog.do vlog.do 파일작성 (train 이후숫자에유의 ) vi wav.do wav.do 파일작성 (train 이후숫자에유의 ) vsim c do vlog.do vsim do wav.do
리포트및공지사항 리포트제출 2 장의실험과제및프로젝트내용 코드내용포함시킬것 ( 반드시주석을추가할것 ) 실험내용에대한고찰부분작성할것코드를포함한작업파일은하나의압축파일로 e-mail 제출제출기한 리포트 : 다음수업시간, 수업시작전에조교에게제출작업코드 : 수업시작전까지 조교 ( 장재원 ) e-mail 주소 jaera82@soc.yonsei.ac.kr