690 likes | 1.14k Views
1 장 서론. 1.1 VHDL 및 논리 합성 탄생 배경 1.2 VHDL 과 ASIC 설계 환경과의 관계 1.3 VHDL 모델링 , 합성 및 FPGA 구현 예 1.4 VHDL 발전 추세 및 미래 전망. 1.1 VHDL 및 논리 합성 탄생 배경. ASIC(Application Specific IC) 의 등장 소량의 특정 목적의 IC 고성능 설계 도구의 영향 회로 집적도 증가의 결과 설계 기법 및 도구의 성능 향상 필요성 대두 설계 프로세스의 혁신
E N D
1장 서론 1.1 VHDL 및 논리 합성 탄생 배경 1.2 VHDL 과 ASIC 설계 환경과의 관계 1.3 VHDL 모델링, 합성 및 FPGA 구현 예 1.4 VHDL 발전 추세 및 미래 전망
1.1 VHDL 및 논리 합성 탄생 배경 • ASIC(Application Specific IC)의 등장 • 소량의 특정 목적의 IC • 고성능 설계 도구의 영향 • 회로 집적도 증가의 결과 • 설계 기법 및 도구의 성능 향상 필요성 대두 • 설계 프로세스의 혁신 • HDL(Hardware Description Language) • Logic Synthesis System
1.1.1 ASIC 기술 • 칩 제작 • 설계 + 제조(Fabrication or Fab.) • 제조 공정 단축 위해 미리 정해진 Mask Pattern 사용 • 집적도 저하, Mask 수를 줄이고 시간 단축 • Mask Pattern 종류에 따른 구분 • Gate Array: 미리 준비된 트랜지스터를 연결해서 게이트 구성 • Standard Cell: 높이가 같은 셀들 배치 및 정해진 배선 영역 *. Gate density / count: 칩이 집적된 NAND, NOR 게이트의 수 • 80년대 초 • 수천 게이트 • 현재 • 100만 게이트 이상(1000 배 이상 증가)
1.1.1 ASIC 기술 • 집적회로 설계의 변천 과정
1.1.1 ASIC 기술 • 한 칩에 보드 전체, 즉 시스템을 집적 가능 • SoC(System-on-a-Chip) • 설계 문제 복잡도 • 기하 급수적 증가 →VHDL, 논리 합성의 기여
1.1.2 합성(Synthesis) • 설계 수준의 향상 • Layout, Gate 수준 →RTL 수준 이상 • RTL 설계의 게이트 수준으로의 변환 • 논리 합성(Logic Synthesis) • 게이트 수준 →Layout 수준 설계 • Layout Synthesis, placement & routing 도구
1.1.2 합성(Synthesis) • 설계 수준과 이에 따른 표현 방법의 변천
1.1.2 합성(Synthesis) • 회로도와 HDL을 이용한 설계 방법의 비교
1.1.3 VHDL & Verilog • 표준화를 목표로 하면서 사용되고 있는 HDL 의 비교 • VHDL • 시스템에 대한 기술의 능력은 매우 높으나, synthesis를 위하여 sub-set VHDL과 modeling에 대한 guide가 요구 • Verilog HDL • VHDL보다는 기술의 능력이 높지는 않으나 널리 사용되고 있으며, gate 레벨의 simulation 언어로는 매우 뛰어남 • VHDL의 개발과 변화 • 1980: The USA Department of Defense(DOD) 에서 요구 • Self-document,Top-down Strategy and Reusable with New Technology 필요성 • 1983: IBM,Texas Instrument와 Intermetrics에서 VHDL 개발 시작 • 1987: IEEE 1076 승인 • VHDL을 처음으로 이용하여 F-22 Aircraft 설계 • EDA(Electronic Design Automation) Vendor에서 개발을 시작하여 상업적으로 이용.
1.1.3 VHDL & Verilog • VHDL의 개발과 변화 • 1993: VHDL was revised to IEEE 1076 ’93 • 1996:IEEE 1076.3(a VHDL package for use with synthesis tools : std_logic_1164) IEEE 1076.4(VITAL) • Verilog HDL의 개발과 변화 • 1983: Gateway 에서 Verilog HDL 또는 Verilog 개발 • 1985: Verilog-XL Simulator 개발 • 1989: Cadence bought Gateway • 1995: IEEE 1364 승인
1.1.4 VHDL 합성의 필요성 • ASIC 설계는 PCB 설계와 다르다. • 오류 수정이 어렵다. • Layout, 제조 공정, 테스트 반복 필요 • 개발 비용, 기간에 직접적인 영향 • ASIC 설계 도구(오류 없는 설계, 시장 접근 시간을 맞추기 위한 설계 도구) • 검증 도구 • Simulator(각 수준에서) • Function, Gate / Logic, Circuit • 합성 도구 • Abstract → Concrete • RTL → Gate → Layout • Extraction 도구 • Layout → Gate → RTL (설계 정확성 검증 위해) • 그 외 • Timing Analyzer, Design Rule Checker, …………
1.1.4 VHDL 합성의 필요성 • VHDL 합성 도구는 gate 수준 netlist 및 회로 도면 생성을 자동화 시킴 • 설계자가 시스템 기능 정의 와 시뮬레이션에 노력을 집중하게 함 • 25,000 게이트 ASIC • 250 페이지 도면 필요
1.1.5 VHDL 논리 합성의 장점 • 설계 사이클 단축 • 설계 변경용이, 설계오류 가능성 저하, 간단한 기술 방식, 빠른 설계, 빠른 변경 • 설계의 질적 향상 • 여러 가지 architecture 시도 가능: 최적화 • 면적 또는 속도 최적화 가능(논리 합성기의 기능) • Timing analyzer 기능 포함(critical path delay, setup, hold time 계산) • 판매자, 기술(technology)에 무관한 설계 가능 • ASIC or FPGA 로 구현 가능 • 설계 비용 절감 • 설계 기간 단축, 스키메틱 설계 과정 생략, 설계 오류 저하 • Design reasability – IP, Library 그대로 또는 수정해서 사용가능 • 한 engineer가 30 ~ 40 k 게이트의 설계 담당 기능 • 집적 기술에 따른 성장 • 현재 수백만 게이트급 설계(SoC) 가능 • 고성능 워크스테이션 도움 – 논리 합성, 시뮬레이션 필수
1.1.5 VHDL 논리 합성의 장점 • 설계 관리 용이 • VHDL • Design, documentation 겸용 • 표준과의 일치 • IFIP 172, IEEE 1076.X
1.1.6 VHDL 논리 합성의 단점 • 설계 문화의 변화 • 회로 도면 설계 시스템 • 합성 시스템 이용한 RTL 수준 설계 시스템으로 • 설계 오류 발견 및 수정 필요(여전히) • 생성된 논리 설계에 대해 Delay 고려한 logic simulation 필요
1.1.7 VHDL 합성의 실체 • “VHDL 로 기술만 하면 합성도구가 완벽한 회로를 만들어 준다 !” • “합성 결과는 사람이 설계한 것 보다 나을 수 없다 !” • VHDL 설계는 논리 설계 경험에 근거해야 함 • 설계 도구는 engineer의 통제 하에 있어야만 한다. • 부적절한 코드, 모호한 코드는 설계자의 책임임 • 상위 수준 설계에 대한 판단은 역시 설계자가 해야 함 • 예 • 여러 사이클에 걸쳐 연산자 공유 하기
1.2 VHDL 과 ASIC 설계 환경과의 관계 1.2.1 합성 가능한 함수 및 합성 원칙 1.2.1.1 무엇을 합성할 수 있는가? • ASIC: Random Logic Block, Memory, Mega Function 부분 • Random Logic Block 합성에 가장 효과 • Memory(RAM, ROM), FIFO 등은 전용 컴파일러가 더 효율적임
1.2.1.1 무엇을 합성할 수 있는가? • 합성 가능 함수 • 조합형 • MUX, DEC, ENC, CMP, LUT, ALU, ADDER, SUBSTRACTOR, PLA, Parity Generator 등 • 순차 논리 함수 • Counter 및 관련 함수 • Register 와 Latch: Shift, Accumulator • 제어 논리 회로: Sequencer, FSM, Edge Detector, Synchronizer 등 • Timing Critical Design 은 추후에 Layout 등에 대한 수정 필요
1.2.1.2 기본 합성 원칙 • 설계 접근 방법: VHDL 설계 – 시뮬레이션 검증- 합성 • 모든 VHDL 코드가 합성 가능하지는 않음 • Synthesizable VHDL Code 에 대한 guideline 이 있다. • 논리 회로 설계 기법에 익숙해야 하고, ASIC 설계 경험도 많아야 좋은 설계 결과를 얻을 수 있다. • 논리 회로의 구조를 생각하며 설계해야 한다.
1.2.2 설계 계층 구조 • ASIC 설계 프로세스는 Top-Down(하향식) 설계 방식에 근거
1.2.3 ASIC 설계 프로세스 • ASIC design engineer 의 목표 • 한번의 설계로 정확히 동작하는 회로 설계 • 물리적 설계까지 끝낸 IC 를 완벽하게 테스트해 제조 과정에서 어떠한 결함도 없게 하는 것
1.2.3 ASIC 설계 프로세스 • ASIC 개발 과정
1.2.3.1 시스템 개발 계획 및 기능 분할 • 시스템 요건 분석 → 적용 가능한 알고리즘 선정, H/W와 S/W 간 기능 분할 → 상위 수준 블록 다이어그램, 하위 모듈에 대한 명세 도출
1.2.3.2 블록 다이어그램 및 개발 명세 결정 • 시스템 분할: 기판, 모듈, ASIC, 그외 IC • 이 과정에서 크기, 전력소모, 무게, 비용, 성능, 개발기간 등을 고려해야 함 • 출력 • ASIC 들의 역할 및 기능(Spec.) + 블록 다이어그램 • 인터페이스 방식, timing 요건, clock speed 등 • 가능한 계속적으로 분할하여 한 모듈이 적절한 크기의 모듈이 되게 한다. • 논리 설계를 시작할 수 있을 만큼의 소규모 블록들로 나눔 • 가능한 상세한 블록 다이어그램 완성 필요 • VHDL 코딩에 도움이 됨 • 함수, 신호 명칭등에 고려
1.2.3.3 테스트 및 시뮬레이션 계획 • 논리 블록 정의, testable design 에 대한 고려 필요 • Test Plan • IC의 controllability(제어 가능성), observability(관찰 가능성)을 위해 부가 회로 추가 필요 → test pattern의 양에 영향 • ASIC의 낮은 수율(yield)와 테스트 안된 설계의 제조는 엄청난 비용과 시간 손실 가져옴 • Simulation Plan • 각 모듈(ASIC) 및 시스템에 대한 시뮬레이션 통한 검증 계획 • 입력 신호 발생 방법 • 시뮬레이션 결과 신뢰도 확인 방법
1.2.3.4 논리 회로 설계 • VHDL 합성 사용에 의해 가장 큰 영향 받는 부분 • 종전 방식과 VHDL 합성 방식 사용 시 설계 흐름도간 비교
1.2.3.4 논리 회로 설계 • VHDL 합성 방식 • Entity 단위로 설계 상세화 • Entity 내의 MUX, Counter, Register 등은 Process 문으로 표현 • 주석(comment) 이용한 서술적 기술 추가 • VHDL 코드 작성 및 시뮬레이션 테스트 패턴 작성 • Netlist 얻기 전에 시뮬레이션 통한 검증이 되므로, 도면 설계에 비해 검증을 훨씬 빨리 시작함 • 자동 생성된 도면을 자주 관찰하여 자신의 VHDL 설계가 어떻게 만들어지는지(원하는 대로 만들어 지는지) 검증하는 것이 중요함(특히 초보자들에게는)
1.2.3.5 시뮬레이션 • VHDL 코딩 완료 단계, 시뮬레이션 중에도 합성 가능 여부를 미리 검사해 보는 것이 필요함 • 테스트 패턴 입력은 ASCII 텍스트 파일 • 출력 • 파형(waveform) • Breakpoint 설정 • Debug • 시뮬레이션 결과에 따라 오류 코드, 설계 오류 등 수정
1.2.3.6 논리 합성 • VHDL의 게이트 수준으로의 합성 • 입력 정보 • VHDL 코드 이외에, ASIC 제조 업체, 셀 라이브러리 • 셀 라이브러리: 게이트별 지연시간, capacitor 크기, 도선 길이에 따른 loading delay 계산 규칙 • 클럭 주파수, 펄스 폭, 동작 온도, 동작 전압, 출력 부하(output load) 등에 대한 가정, critical path 통한 최대 전달 지연 시간 등 • 논리 합성의 단계 • Generic technology gate / function 이용한 합성 • MUX, DEC, Register, ALU 등 범용 논리 블록으로의 합성 • 논리 블록 공유 최적화 • 특정 technology(library) 를 고려한 합성 • 범용 블록을 특정 ASIC 제조 업체의 library cell 들로 대치함 • 이 과정에서 속도 제약 조건 만족 위해 performance optimization 수행 • 속도 제약 조건 만족 시 면적 최소화(logic minimization) 수행
1.2.3.6 논리 합성 • 출력 정보 • 논리 게이트 수준의 netlist, schematic diagram, chip bonding, layout, gate-level logic simulation, post layout timing simulation 등에 사용 • Timing, gate count, critical path delay, 보고서 형태의 출력 • 어떤 기억 소자들에 합성 되었나, 속도 제약 조건 만족 여부 등 • 설계자의 합성 결과에 대한 면밀한 분석 자세 필요 • 자신의 예상대로 합성 여부(게이트 수, 메모리 소자) • 도면 관찰 통한 확인 필요 • 더 나은 결과(성능 또한 면적) 얻기 위해서도, 다양한 기술 방식의 합성 결과 관찰 필요 • 게이트 수가 지나치게 많지 않은지 검사도 필수적임
1.2.3.7 ASIC 검증 • Layout(placement) 및 routing 에 앞서 최종적인 gate-level 회로 검사 수행 • Pre-route signoff 라고도 함 • 목적: layout 직전, 직후에 어떤 설계 오류도 없게 하기 위함 • 입력 • 회로 파일(netlist) 와 시뮬레이션 패턴 파일 • 하는 일 • Gate-level logic/timing simulation, timing analysis, DRC(Design Rule Checking), ERC(Electrical Rule Checking) 및 I/O 핀 할당 • 특히 속도 제약 조건이 강한 설계의 경우 layout planning 에도 세심한 고려 필요 • Layout planning(floor planning)의 변화를 배선 전 예측(속도, 면적에 대한) 값에 많은 영향을 줌
1.2.4 VHDL 합성 방식에서 유의할 사항 • Schematic design 에서 사용되던 원칙이나 방식을 VHDL 이용한 설계 방식에도 적용해야 한다. • 유의 사항 • VHDL 설계는 프로그래밍이 아니라 논리 설계이다. 따라서 논리 회로 구조를 예상하고 도시한 후에 그에 따라 VHDL 설계를 해야 한다.(즉, schematic design 에서의 방식을 염두에 두어야만 정확한 설계가 가능하다.) • 자신이 원하는 것을 합성해 낼 수 있도록 VHDL 코딩을 하는 것이다. • VHDL 설계 시 사용되는 시뮬레이터와 최종 설계 검증 시, 사용되는 ASIC 제조 업체 공인 고성능 논리 시뮬레이터를 사용하는데, 두 시뮬레이터에 같은 테스트 패턴을 입력으로 사용한다.(게이트 수준 ASIC 설계와 VHDL 설계의 일치 여부 확인 위해) 공통을 테스트 패턴 사용위해 VHDL test bench 로 부터 양쪽 시뮬레이터에 대한 테스트 패턴 집합을 만들어 내는 것이 좋다.
1.3 VHDL 모델링, 합성 및 FPGA 구현 예 • VHDL 모델링, 시뮬레이션 통한 검증, FPGA 로의 구현 과정 • FPGA • 설계의 정확성 검증의 한 방법 • 최종 목적지는 ASIC 으로의 구현 1.3.1 합성을 위한 VHDL 모델링 • VHDL 모델링 수준: 행위 수준(알고리즘) 부터 게이트 수준까지 • Top-down design 방식 구현 위한 문법적 특징 • 합성가능 표현 구조는 매우 제한적임 • 테스트 벤치 기술 등을 위해서는 그 이외의 것들에 대한 이해 필요
1.3 VHDL 모델링, 합성 및 FPGA 구현 예 1.3.1.1 추상적 행위 수준 모델링 • 하드웨어의 기능과 동작에 대한 기술 • clock, word length, bit 할당 등 구체적 정보 배제됨 • PASCAL 이나 C 언어 기술과 유사함 • 특히 test bench 기술 시에 효과적임 1.3.1.2 레지스터 전송 수준 모델링(RTL) • 논리회로 설계 시 상세한 블록 다이어그램을 그리는 것에 해당 • Clock, reset 존재 • Data bus, register 등의 너비가 정해짐 • 신호 할당 예: Output <= Input; • 대개는 ASIC 제조 업체나 technology 에 무관함 • Data flow description 이라고도 함
1.3 VHDL 모델링, 합성 및 FPGA 구현 예 1.3.1.3 구조적 모델링 • Netlist 표현 방식과 유사 • 다양한 component 들이 신호선으로 연결된 회로 • Component는 gate, FF, 다른 RTL 코드 블록 *. 하향식 설계 • 상세화 되면서 낮은 수준의 블록으로 대체됨
1.3.1.4 전 가산기 VHDL 모델링의 예 • 반 가산기 entity 선언부
1.3.1.4 전 가산기 VHDL 모델링의 예 • 반 가산기: RTL 모델링
1.3.1.4 전 가산기 VHDL 모델링의 예 • 반 가산기: 추상적 행위 수준 모델링
1.3.1.4 전 가산기 VHDL 모델링의 예 • 전 가산기: 구조적 모델링
1.3.1.4 전 가산기 VHDL 모델링의 예 • 전 가산기 회로도
1.3.2 VHDL 모델링의 시뮬레이션 및 논리 합성의 예 • 전 가산기 회로에 대한 test bench
1.3.2 VHDL 모델링의 시뮬레이션 및 논리 합성의 예 • 전 가산기 시뮬레이션 결과
1.3.2 VHDL 모델링의 시뮬레이션 및 논리 합성의 예 • 전 가산기 합성 결과(그림 1-7 의 VHDL 코드 사용 시)
1.3.2 VHDL 모델링의 시뮬레이션 및 논리 합성의 예 • 전 가산기의 동작적 모델링
1.3.2 VHDL 모델링의 시뮬레이션 및 논리 합성의 예 • 전 가산기 합성 결과(그림 1-13의 VHDL 코드 사용)
1.3.3 VHDL 모델링의 FPGA 구현 • ASIC 의 종류 • standard cell, gate array, PLD(Programmable Logic Devices) 1.3.3.1 FPGA(Field Programmable Gate Array) • PLD의 확장 형태 • 범용 FPGA의 구조(논리 셀과 배선 영역 분리되어 있음)
1.3.3.2 FPGA 구현의 예 • 대표적인 FPGA 설계 흐름도
1.3.3.2 FPGA 구현의 예 • Pre-layout simulation 과 post-layout simulation이 있다. • Timing analyzer • Set-up time, hold time, clock trigger 에서 추력까지의 지연 시간, 최대 동작 주파수 예측 • Device programming file • JEDEC 포맷(Cypress, Warp tool), BIT 파일(XILINX) • 디바이스 선택 화면