620 likes | 914 Views
MAX+PLUS II 개요. 단원목차. 1. PLD 란 무엇인가 ? 2. MAX+PLUS II 를 사용하여 PLDs 를 프로그래밍 3. 그래픽 설계 파일 (Graphic Design File) 4. MAX+PLUS II 파일의 컴파일 5. 계층적 설계 6. 문자 설계 파일 (VHDL) 7. 물리 디자인 생성. Programmable Logic Device (PLD). 미리 정해지지 않은 로직 기능으로 제공된다 . 임의의 디지털 로직 기능을 구현하기 위해서는 사용자에 의해 프로그래밍 된다 .
E N D
단원목차 1. PLD란 무엇인가? 2. MAX+PLUS II를 사용하여 PLDs를 프로그래밍 3. 그래픽 설계 파일(Graphic Design File) 4. MAX+PLUS II 파일의 컴파일 5. 계층적 설계 6. 문자 설계 파일(VHDL) 7. 물리 디자인 생성
Programmable Logic Device (PLD) • 미리 정해지지 않은 로직 기능으로 제공된다. • 임의의 디지털 로직 기능을 구현하기 위해서는 사용자에 의해 프로그래밍 된다. • 설계와 프로그래밍을 위해서는 특별한 소프트웨어가 요구된다.
PLDs 사용 시의 장점 • 사용되는 칩의 수를 줄일 수 있다. • (예4.1 참조) • 사용되는 칩의 종류를 줄일 수 있다. • 설계과정이 빨라진다. • 설계의 융통성이 있다.
Complex PLD (CPLD) • A PLD that has several programmable sections with internal interconnections between the sections. • In effect, CPLD is several interconnected PLDs on a single chip.
PLD 프로그래밍 • 특별한 컴퓨터 소프트웨어가 요구된다. • PLD Design Cycle로 알려진 일련의 과정을 통해 프로그램 된다. • 한 가지 가능한 프로그램은 Altera사의 MAX+PLUS II 이다.
PLD Design Cycle - 1 • Design entry –회로를 설계한다. • Simulation –설계회로출력이 입력에 따라 올바르게 동작하는 지를 입증한다. • Compilation – CPLD를 프로그램 하기 위해서 설계 정보를 발생시키는 과정이다.
PLD Design Cycle - 2 • Fitting –요구된 설계에 대해 회로를 할당하기 위해 CPLD의 일부를 결정한다. • Programming –원하는 로직 기능을 수행하기 위해 CPLD를 배열한다.
Altera Target Devices • 설계를 구현하기 위해 CPLDs를 사용한다. • MAX7000S family – EPM7128SLC84-7, 비휘발성(non-volatile) CPLD, EEPROM 셀을 이용하여 프로그램. • (128 : number of macrocells, S : in-system programmable) • FLEX10K family – EPF10K20RC240-4, 휘발성(volatile) CPLD, LUT SRAM을 이용하여 프로그램.
Volatile vs. Non-Volatile • 휘발성(Volatile) • –정보(프로그램)은 단지 소자에 전원이 공급되는 동안만 유지된다. • 비휘발성(Non-Volatile) • –정보(프로그램)은 전원이 제거되고 다시 공급되어도 유지된다.
CPLD Design Entry • 두 가지 일반적인 방법 • 1. 회로도 입력(그래픽) • 2. 문자기반 입력(VHDL, Verilog HDL)
MAX+PLUS II Graphic Entry • 디지털 설계를 회로도로 입력하기위해 ‘Graphic Design File(.gdf)’을 사용하라. • 컴포넌트와 이들의 연결과 회로의 입력, 출력 이름을 보여라. • (Figure 4.3 참조)
Figure 4.3 • Majority Vote Circuit
Graphic Design File 생성 • 회로도 입력방법을 사용하라. • MAX+PLUS II는 프로그램을 위해 요구되는 파일들을 생성시킨다. • 모든 파일은 프로젝트(project)로 제시된다. • Figure 4.6 참조
MAX+PLUS II Project • 특정 PLD 설계와 관련되는 일련의 파일. • PLD를 위한 프로그램 파일을 생성하기 위해서 프로젝트 상에서 수행되는 모든 동작. • 항상 현재 프로젝트가 어디인 지를 그 트랙을 유지하라.
MAX+PLUS II Graphic Design Files 생성 • 먼저, 적절한 폴더에 파일을 Save하라. • 두 번째, Set Project to Current File. • Figure 4.8
Components 불러오기 • 컴포넌트 위치를 지정하기 위해 커서를 사용하고, 마우스의 왼쪽 버튼을 누른다. • 삽입 메뉴를 활성화 하기위해 마우스 오른쪽 버튼을 사용한다. • ‘Enter Symbol’을 선택 • Figure 4.9
‘Enter Symbol’메뉴 • 기본 컴포넌트를 이름이나 라이브러리 로부터 선택한다. • 기본 컴포넌트를 ‘프리미티브(primitive)’라 한다. • 컴포넌트의 각 copy는 ‘인스턴스(instance)’라 한다. • Figure 4.10
심볼 배열과 이동하기(1) • Symbol은 마우스 왼쪽버튼을 이용하여 클릭함으로써 밝게 되고, 이 때 드래그 함으로 원하는 위치로 이동시킬 수 있다. • Figure 4.11
심볼 배열과 이동하기(2) • Figure 4.12 • Figure 4.13
컴포넌트 연결 • 컴포넌트는 한 컴포넌트의 한 끝을 클릭하고, 다른 컴포넌트의 또 다른 끝으로 선을 드래그함으로 연결된다. Figure 4.14
핀 이름의 할당 • 입력과 출력은 이름이 할당되어야 한다. • 핀 이름을 더블 클릭하면 밝게 되고(e.g. INPUT_VCC, 그 때 이름을 입력한다. Figure 4.17
Target Device(1) • 컴파일 하기 전에 타깃 디바이스를 규정해야 한다. • 타깃 디바이스를 선택하기 위해 Assign 메뉴를 사용하라. • Figure 4.18, 4.19
Target Device(2) • Device Dialog Box
Compile Options(1) • Design Doctor : • 좋은 설계 습관을 위해 체크하라. • Timing SNF Extractor : • 타이밍 시뮬레이션을 위해 필요한 파일을 생성한다. • Smart Recompile : • 이전에 컴파일 한 부분을 바꾸지 않고 다시 사용할 수 있다.
Compile Options(2) • Figure 4.20 • MAX+PLUS II • Compiler 세팅 • Figure 4.21 • MAX+PLUS II • Compiler 동작
Compile 메세지 • 3가지 종류의 메시지가 있다. • 첫 번째, Info (green text)로 단지 정보용임. • 두 번째, Warning (blue text)으로 잠정적 문제를 가리킴. 그러나 치명적이지는 않음. • 세 번째, Error (red text)로 디자인을 사용할 수 없는 설계 결점임.
Compile Files • non-volatile CLPDs (e.g. MAX series)를 위한 Programmer Object File(.pof) 생성 • volatile CPLDs (e.g. FLEX series)를 위한 SRAM Object File (.sof) 생성
계층적(Hierarchical) 설계 • PLD 설계는 층 또는 레벨로 계층화 된다. • Top 레벨은 완전한 설계의 컴포넌트를 포함한다. • Lower 레벨은 최상위 레벨의 컴포넌트 내에 내장되는 하위 혹은 그 이하의 컴포넌트를 포함한다.
Default Symbol • 그래픽 심벌은 PLD 디자인을 블록으로 나타내기 위해 사용된다. • 단지 디자인의 입력과 출력만을 보여준다. • 계층적 디자인에서 하나의 컴포넌트로 사용된다.
문자기반 입력(Text Based Entry) • Hardware Description Language (HDL)를 사용한다. • 그래픽 입력방법보다 더욱 더 강력한 설계 기법이다.
Hardware Description Language(HDL) • 회로를 설계할 때 설계회로를 문자형태로 기술하는 컴퓨터 언어이다. • VHDL(VHSIC Hardware Description Language)는 PLDs를 프로그램 하는데 사용되는 산업표준어 이다.
VHDL 역사 • 회로를 프로그램으로 개발하기 위해서 (미) 국방성 계약에 의해 개발되었음. • 현재는 IEEE Std. 1076-1993에서 표준화 되었음.
VHDL 기본규칙 • 구성규칙은 “syntax”로 불린다. • 대소문자를 구별하지 않는다. 하지만, 키워드, 소자, 상수, 프리미티브는 대문자로 표시할 것을 권장한다. • 주석(Comments)은 텍스트 앞에 이중 사선( double dashes)으로 표시한다. • 주석은 컴파일 되지 않는다.
VHDL 구조 • entity 선언과 architecturebody를 요구한다. • entity는 디자인의 입력과 출력을 정의한다. • architecture는 입력과 출력 및 내부 신호들 사이의 관계를 정의한다.
VHDL Entity • 기능의 외부적 측면을 정의한다. • 각 입력 혹은 출력은 포트(port)이다. • 포트의 형식은 모드(mode) 로 정의된다. • Fig 4.28 • VHDL Design Entity의 • 그래픽 표현
포트 모드의 형식(1) • IN: 단지 입력으로만 사용되는 포트이다. • OUT:단지 출력으로만 사용되는 포트이다. • INOUT:양방향(bidirectional) 포트이다. • BUFFER: OUT 포트의 특별한 경우로 CPLD 로직으로 피드백이 있을 때 사용된다.
포트 모드의 형식(2) • Fig 4.29 • VHDL Port Modes • Fig 4.30 • BUFFER and OUT Modes
Port 형식 • 포트 형식은 포트가 가질 수 있는 값을 정의한다. • 단일비트나 복수비트를 가질 수 있다.
단일비트 포트형식 • BIT는 ‘0’혹은 ‘1’의 값을 가진다. • STD_LOGIC는 9개의 값 중에 하나를 가질 수 있다. • INTEGER는 전체 수 값을 가질 수 있다.
STD_LOGIC 형식 • 가능한 값:‘U’– uninitialized ‘X’– forcing unknown‘0’– forcing 0 ‘1’– forcing 1‘Z’– high impedance ‘W’– weak unknown‘L’– weak 0 ‘H’– weak 1‘-’– don’t care. • 일반적으로 ‘X’, ‘0’, ‘1’, ‘Z’가 사용된다.
복수비트 포트형식 • BIT_VECTOR는 0 또는 1의 복수 개의 개체을 가질 수 있다. • STD_LOGIC_VECTOR는 U, X, 0, 1, Z, W, L, H, -의 복수 개의 개체를 가질 수 있다. • 벡터(Vector)는 단일 복수비트 변수로 취급되는 신호그룹을 의미한다.
VHDL Architecture • 내부적 측면을 정의한다. 즉, 입력과 출력이 서로서로 어떻게 행동하며, 또한 다른 내부신호 혹은 기능과 어떻게 행동하는 지를 정의한다. • 논리적 관계를 정의하기 위해 연산자 (operators)를 사용한다.
Architecture Operators • <= : 식의 오른쪽 값을 왼쪽으로 할당하는 연산자 • 논리 연산자는 ‘and’와 ‘or’과 같이 이름으로 할당한다.
우선순위 • 모든 논리 연산자는 동일한 우선순위를 가진다. • 우선순위를 명확히 하고자 할 때는 괄호를 사용한다.
병행적 신호 할당(Concurrent Signal Assignment) • 병행적(Concurrent)은 동시적(simultaneous)을 의미한다. • ‘architecture body’에서 신호의 순위는 그들이 쓰여진 순서대로 평가되지 않는다. • 일부 회로에 대한 공통입력에 변화가 있을 때, 동시에 다른 모든 회로에 영향을 미친다.
Example - Majority Vote2 LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY maj_vot2 IS PORT( a, b, c : IN STD_LOGIC; y : OUT STD_LOGIC); END maj_vot2; ARCHITECTURE majority OF maj_vot2 IS BEGIN y <= (a and b) or (b and c) or (a and c); END majority;
Example 4.3 – 2-Line-to-4-Line Decoder • 여러 가지 가능한 방법이 있다. • 개별 입력이나 벡터를 사용하여 묘사될 수 있다. • Figure 4.31
Example 4.3 – Vector Definitions • 벡터는 상한선과 하한선을 정의함으로 규정될 수 있다.– (3 downto 0), (0 to 3), (4 downto 1), (1 to 4). • 벡터는 선택적 신호 할당문(selected signal assignment statement)을 사용하여 규정할 수 있다.