280 likes | 728 Views
2. 하드웨어 기술 언어 (Hardware description lang.). 1. 하드웨어 발전 ( 설계 ) 의 변천. 1947 년 트랜지스터 발명 - 반도체 시대의 도래 1958 년 집적회로 (integrated circuit, IC) 발명 반도체 칩 - 마이크로 전자공학의 성장 기초 고성능 대규모 집적회로 설계와 제작 1970 년 마이크로프로세서 발명 DRAM 발명 전자회로 설계에 CAD 도입 EDA ( 설계 자동화 ) 도입
E N D
1. 하드웨어 발전(설계)의 변천 • 1947년 트랜지스터 발명-반도체 시대의 도래 • 1958년 집적회로 (integratedcircuit, IC) 발명 • 반도체 칩-마이크로 전자공학의 성장 기초 • 고성능 대규모 집적회로 설계와 제작 • 1970년 마이크로프로세서 발명 • DRAM 발명 • 전자회로 설계에 CAD 도입 EDA (설계자동화) 도입 • 칩의 크기, 집적도, 수행시간, 시뮬레이션 등으로 인해 설계가 복잡해짐 • 회로도 바탕의 설계는 불가능 • 하드웨어 기술 언어 (hardware description language, HDL)의필요성이 대두
그림 2-2 마이크로프로세서와 메모리 집적도의 발전 경향
2. 하드웨어 기술언어의 필요성 • 큰 시스템 설계에는 회로도 (schematic)에의한 설계는 불가능 • EDA (electronic design automation) tool을이용한 설계 • 반도체 소자의 고 집적화로 인해 단위 면적당 소자 수의 증가 • 개발 기간의 감소, 가격의 감소 • HDL이 필연적임 • 고기능과고성능이 요구됨 • 반도체의 고 집적화가 요구됨 • ASIC, CPLD, FPGA 등과소규모 집적회로 등에도 널리 이용됨
library IEEE; use IEEE.std_logic_1164.all; entity AND_OR is port (A, B, C : in std_logic; F: out std_logic ); architecture arc of AND_OR is signal tmp: std_logic; component and_2 port(A, B: in std_logic; F: out std_logic); end component component OR_2 port(A, B: in std_logic; F: out std_logic); end component; begin ANDG: AND_2 port map(a, b: tmp) ORG:OR_2 port map(a, b: tmp, c F); end arc;
일반 프로그래밍 언어는 명령어가 순차 실행 • HDL은 명령어의 순서에 관계 없이 실행 (하드웨어로 구성 되기 때문임)-클럭 (clock)에동기 되어 각 하드웨어 모듈이 클럭 신호가 발생될 때 마다 연관되어 병행적으로 실행됨. 프로그래밍 언어 하드웨어기술 언어 A=B+C A=B+C D=B+A 순 차 실 행 D=B+A D=B+A A=B+C
3. VHDL의 등장 배경 • HDL이 표준화 되기 이전에는 레이아웃 편집기, 스키매틱 편집기 (schematiceditor) 등과 같은 EDA 툴이사용-회로의 구성요소인 심볼을 사용. • 상향식 (bottom-up) 설계회로의 규모가 증대되면 한계가 있음. • 알고리듬(algorithm)이나함수 (function)에의한 설계가 필요하게 됨. • 전자회로 설계를 인간의 사고와 유사한 형태로 회로 설계 방식이 요구됨.
VHDL (Very high speed integrated circuit Hardware Description Language):하드웨어의 동작 특성을 컴퓨터언어와 같이 인간 중심의 문법 형태로 표현 한 것. • 개발 속도가 빠르고 고속 동작이 가능집적도가 높은 차세대 IC 개발에용이한 언어. • 다양한 하드웨어 동작을 표현 기술을 제공 • C, C++와 같은 상위 레벨 언어 • 시스템의 주요 요소를 정의낮은 레벨의 요소로 분해원하는 수준에 도달할 때까지 반복해 시스템을 설계하는 하향식 설계 (topdown) 방식 • 시뮬레이션이 가능해서 개발 기간 단축
4. VHDL의 특징 및 용도 4.1 VHDL의 특징 • 하드웨어 기술 표준을 두어 특별할 설계 도구에 구애 받지 않음. • 제품 제작에 특정한 제작자를 선정할 필요가 없음. • 시스템레벨에서 게이트 레벨 까지 설계 가능 (고도의 추상화) • ASIC 설계에적합 • 프로그래밍 언어의 성격을 가지므로 다양한 하드웨어 기술 방법을 제공 • VHDL의 장점 • 표준화된 형태 제공 • 기술 독립적 형태 제공 • 상위 레벨 언어 형태 제공 • 광범위한 설계 범위 지원 • 하향식 (top-down) 설계지원 • VHDL의 단점 • 문법의 독창성 • 설계 방식의 변화 요구
4.2 VHDL의 용도 • 간결한 하드웨어 표현, 표준화, 편리한 문서화, 시뮬레이션의 용이성, 설계 정보의 교환 등의 특징 • 교육기관 및 산업체, 연구소 등에서 하드웨어 설계에 요구되는 문서화, 시뮬레이션, 추상적 개념을 게이트 레벨로 변환시키는 합성 등의 용도로 사용 1. 문서로서의 용도 • 자체 문서화 적인 특징 내포. 2. 합성으로서의 용도 • 추상화된 알고리듬적 동작게이트 회로, 레지스터 레벨로 변환 • 합성작업 • 네트리스트:논리 합성에 의해 회로의 접속관계를 나타내는 것 3. 검증으로서의용도 • 알고리듬 단계 시뮬레이션 (algorithmicsimulation) • 하드웨어 기능 수준에서 시뮬레이션 (functional simulation) • 합성 후시뮬레이션 (postsimulation)
technology library VHDL modeling and simulation RTL (register transfer level) Synthesis gate level netlist constraints
5. HDL과 일반 프로그래밍 언어의 설계 절차 • HDL 프로그램은일반 컴퓨터 프로그램 언어의 프로그램과 유사한 점이 많다. abstract level HDL modeling behavioral description high level language programming C, C++, …etc. structural level synthesis assembly programming silicon computer high level language computer assembler gate level design physical level machine language layout design
6. HDL의 종류 • HDL: 디지털시스템의 기능 및 하드웨어적 특징을 컴퓨터의 고급 언어의 형식을 빌어 원하는 기능을 갖는 회로를 기술. • 디지털 시스템의 모델링, 시뮬레이션, 설계, 문서화, 게이트 레벨로의 합성. • 추상적 레벨로부터 게이트 레벨까지 절차적, 구조적 형태로 하드웨어 표현 가능. • 기존의 하드웨어 설계:회로도 (schematic)로설계, 상향적 설계, 회로가 복잡해지면 불가능 • HDL을 이용한 설계 • 디지털 시스템의 모델링 • 회로 검증을 위한 시뮬레이션 • 회로의 설계 • 문서화 • 게이트 레벨로의 합성 • 추상적 레벨로부터 게이트 레벨까지의 절차적, 구조적 형태의 하드웨어 표현
일반 컴퓨터 언어 (C, C++, Pascal 등) 표준화 IEEE-1076 하드웨어 기술 언어 (HDL) VHDL AHDL CDL UDL1 TDL
7.1 설계 사양 정의 • 구현하고자 하는 제품의 설계 스펙(specification) 정의 • 기능, 소자, 크기, 개발 기간등과 같은 것을 정의 함 7.2 VHDL에 의한 설계 기술 (description) • 주어진요구사항에 대한 하드웨어를 설계하기 위한 부분 • 설계 형식화 단계 • 하향식 접근 (HDL) • 전체 시스템에 대한 추상적 형태의 요소 정의 • 시스템의 요소를 분해 하여 부 시스템 (subsystem)으로 설계 하는 방식 • 초반 시스템 기능을 정의할 때 고려해야 하는 범위가 좁아 많은 고민 없이 기능에 맞게 설계 가능 • 상향식 접근 (schematic) • 기능적 요소를 정의요소들을 결합새로운 요소 생성—시스템설계 • 현실적 사물에 기초유연한 회로 설계 가능 • 복잡한 회로 설계는 어렵다.
2. 코드화 단계 • HDL로 작업할 때 구문과 의미를 조심하면서 블록, 데이터흐름, 상태도를 참조하여 작업을 진행 • 설계 작업 전에 입출력을 명확히 정의 • 목표는 하드웨어 회로 • 가장 작은 단위인 entity 로 시작한다. • 작업도구가 제공하는 제약조건을 적절히 사용 3. 코드의 시뮬레이션 • 대규모 설계는 대부분 계층적 구조로 형성. • 시뮬레이션을 통해 코드를 검증, 코드의 오류를 수정설계 작업 시간 절약
7.3 설계의 합성 • 합성 (synthesis): 구성한코드를 실제 회로 형태인 게이트레벨, RTL로 변환하는 작업 • 추상적 설계 기술(표현)PLD/CPLD에 적합한 식, FPGA 배치 및 네트리스트와 같은 저수준 형태의 회로로 표현 1. 상위레벨 합성 (highlevel synthesis) • architectural level synthesis, behavioral level synthesis. • HDL로 작성된 설계사양전송레벨의 논리회로도로 변환하는 과정. • 최적화(optimization):합성 시 사용하지 않는 코드의 제거, 공통수식의 제거 2. 논리합성 (logicsynthesis) • RTL레벨 또는 HDL로 작성된 상위레벨 합성으로부터 게이트 레벨의 순서회로(sequentiallogic) 형태의논리회로를 설계 • 유한 형태 머신에 상태할당을 수행 • 조합논리는 진리표나 부울 식 형태로의 설계를 최소화된 논리회로 생성
7.4 레이아웃 합성 • 네트리스트칩 제조 공정에 필요한 물리적 마스크 패턴 생성 • floorplan, 배치, 배선, 레이아웃 검증 등을 수행최적의 마스크 패턴 생성 과정 1. floorplan • 각블록을 블록 모양과 블록간의 연결에 필요한 배선 영역의 크기를 계산, 최적의 칩 면적이 되도록 구도를 잡는 것 2. 배치와 배선 3. 레이아웃 후 시뮬레이션 7.5 소자 프로그램