max+plus ii 개요
DESCRIPTION
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). 미리 정해지지 않은 로직 기능으로 제공된다 . 임의의 디지털 로직 기능을 구현하기 위해서는 사용자에 의해 프로그래밍 된다 . - PowerPoint PPT PresentationTRANSCRIPT
1
MAX+PLUS II 개요
2
단원목차
1. PLD 란 무엇인가 ?2. MAX+PLUS II 를 사용하여 PLDs 를
프로그래밍 3. 그래픽 설계 파일 (Graphic Design File)4. MAX+PLUS II 파일의 컴파일5. 계층적 설계6. 문자 설계 파일 (VHDL)7. 물리 디자인 생성
3
Programmable Logic Device (PLD)
• 미리 정해지지 않은 로직 기능으로 제공된다 .
• 임의의 디지털 로직 기능을 구현하기 위해서는 사용자에 의해 프로그래밍 된다.
• 설계와 프로그래밍을 위해서는 특별한 소프트웨어가 요구된다 .
4
PLDs 사용 시의 장점
• 사용되는 칩의 수를 줄일 수 있다 .
( 예 4.1 참조 )
• 사용되는 칩의 종류를 줄일 수 있다 .
• 설계과정이 빨라진다 .
• 설계의 융통성이 있다 .
5
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.
6
PLD 프로그래밍
• 특별한 컴퓨터 소프트웨어가 요구된다 .• PLD Design Cycle 로 알려진 일련의 과정을 통해 프로그램 된다 .• 한 가지 가능한 프로그램은 Altera 사의 MAX+PLUS II 이다 .
7
PLD Design Cycle - 1
• Design entry – 회로를 설계한다 .
• Simulation – 설계회로출력이 입력에 따라 올바르게 동작하는 지를 입증한다 .
• Compilation – CPLD 를 프로그램 하기 위해서 설계 정보를 발생시키는 과정이다 .
8
PLD Design Cycle - 2
• Fitting – 요구된 설계에 대해 회로를 할당하기 위해 CPLD 의 일부를 결정한다 . • Programming – 원하는 로직 기능을 수행하기 위해 CPLD 를 배열한다 .
9
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 을 이용하여 프로그램 .
10
Volatile vs. Non-Volatile
• 휘발성 (Volatile)
– 정보 ( 프로그램 ) 은 단지 소자에 전원이 공급되는 동안만 유지된다 .
• 비휘발성 (Non-Volatile)
– 정보 ( 프로그램 ) 은 전원이 제거되고 다시 공급되어도 유지된다 .
11
CPLD Design Entry
• 두 가지 일반적인 방법 1. 회로도 입력 ( 그래픽 ) 2. 문자기반 입력 (VHDL, Verilog HDL)
12
MAX+PLUS II Graphic Entry
• 디지털 설계를 회로도로 입력하기위해 ‘Graphic Design File(.gdf)’ 을 사용하라 .• 컴포넌트와 이들의 연결과 회로의 입력 , 출력 이름을 보여라 .(Figure 4.3 참조 )
13
Figure 4.3
• Majority Vote Circuit
14
Graphic Design File 생성
• 회로도 입력방법을 사용하라 .
• MAX+PLUS II 는 프로그램을 위해 요구되는 파일들을 생성시킨다 .
• 모든 파일은 프로젝트 (project) 로 제시된다.
• Figure 4.6 참조
15
Figure 4.6
16
MAX+PLUS II Project
• 특정 PLD 설계와 관련되는 일련의 파일 .
• PLD 를 위한 프로그램 파일을 생성하기 위해서 프로젝트 상에서 수행되는 모든 동작 .
• 항상 현재 프로젝트가 어디인 지를 그 트랙을 유지하라 .
17
MAX+PLUS II Graphic Design Files 생성
• 먼저 , 적절한 폴더에 파일을 Save 하라 .
• 두 번째 , Set Project to Current File.
• Figure 4.8
18
Components 불러오기
• 컴포넌트 위치를 지정하기 위해 커서를 사용하고 , 마우스의 왼쪽 버튼을 누른다 .• 삽입 메뉴를 활성화 하기위해 마우스 오른쪽 버튼을 사용한다 .• ‘Enter Symbol’ 을 선택• Figure 4.9
19
‘Enter Symbol’ 메뉴
• 기본 컴포넌트를 이름이나 라이브러리 로부터 선택한다 .• 기본 컴포넌트를 ‘프리미티브 (primitive)’라 한다 .• 컴포넌트의 각 copy는 ‘인스턴스 (instance)’ 라 한다 .• Figure 4.10
20
심볼 배열과 이동하기 (1)
• Symbol 은 마우스 왼쪽버튼을 이용하여 클릭함으로써 밝게 되고 , 이 때 드래그 함으로 원하는 위치로 이동시킬 수 있다 .
• Figure 4.11
21
• Figure 4.12 • Figure 4.13
심볼 배열과 이동하기 (2)
22
컴포넌트 연결• 컴포넌트는 한 컴포넌트의 한 끝을 클릭하고 , 다른 컴포넌트의 또 다른 끝으로 선을 드래그함으로 연결된다.
Figure 4.14
23
핀 이름의 할당• 입력과 출력은 이름이 할당되어야 한다 .
• 핀 이름을 더블 클릭하면 밝게 되고 (e.g. INPUT_VCC, 그 때 이름을 입력한다 . Figure 4.17
24
Target Device(1)
• 컴파일 하기 전에 타깃 디바이스를 규정해야 한다 .• 타깃 디바이스를 선택하기 위해 Assign 메뉴를 사용하라 .• Figure 4.18, 4.19
25
Target Device(2)
• Device Dialog Box
26
Compile Options(1)
• Design Doctor : 좋은 설계 습관을 위해 체크하라 .• Timing SNF Extractor : 타이밍 시뮬레이션을 위해 필요한 파일을 생성한다 .• Smart Recompile :이전에 컴파일 한 부분을 바꾸지 않고 다시 사용할 수 있다 .
27
Compile Options(2)
• Figure 4.20 MAX+PLUS II Compiler 세팅
• Figure 4.21 MAX+PLUS II Compiler 동작
28
Compile 메세지
• 3 가지 종류의 메시지가 있다 .• 첫 번째 , Info (green text) 로 단지 정보용임 .• 두 번째 , Warning (blue text) 으로 잠정적 문제를 가리킴 . 그러나 치명적이지는 않음 .• 세 번째 , Error (red text) 로 디자인을 사용할 수 없는 설계 결점임 .
29
Compile Files
• non-volatile CLPDs (e.g. MAX series) 를 위한 Programmer Object File(.pof) 생성• volatile CPLDs (e.g. FLEX series) 를 위한 SRAM Object File (.sof) 생성
30
계층적 (Hierarchical) 설계
• PLD 설계는 층 또는 레벨로 계층화 된다.• Top 레벨은 완전한 설계의 컴포넌트를 포함한다 .• Lower 레벨은 최상위 레벨의 컴포넌트 내에 내장되는 하위 혹은 그 이하의 컴포넌트를 포함한다 .
31
Default Symbol
• 그래픽 심벌은 PLD 디자인을 블록으로 나타내기 위해 사용된다 .• 단지 디자인의 입력과 출력만을 보여준다 .• 계층적 디자인에서 하나의 컴포넌트로 사용된다 .
32
문자기반 입력 (Text Based Entry)
• Hardware Description Language (HDL) 를 사용한다 .
• 그래픽 입력방법보다 더욱 더 강력한 설계 기법이다 .
33
Hardware Description Language(HDL)
• 회로를 설계할 때 설계회로를 문자형태로 기술하는 컴퓨터 언어이다 .• VHDL(VHSIC Hardware Description Language) 는 PLDs 를 프로그램 하는데 사용되는 산업표준어 이다 .
34
VHDL 역사
• 회로를 프로그램으로 개발하기 위해서 (미 ) 국방성 계약에 의해 개발되었음 .• 현재는 IEEE Std. 1076-1993 에서 표준화 되었음 .
35
VHDL 기본규칙
• 구성규칙은 “ syntax” 로 불린다 .• 대소문자를 구별하지 않는다 . 하지만 , 키워드 , 소자 , 상수 , 프리미티브는 대문자로 표시할 것을 권장한다 . • 주석 (Comments) 은 텍스트 앞에 이중 사선 ( double dashes) 으로 표시한다 .• 주석은 컴파일 되지 않는다 .
36
VHDL 구조
• entity 선언 과 architecture body 를 요구한다 .
• entity 는 디자인의 입력과 출력을 정의한다 .
• architecture 는 입력과 출력 및 내부 신호들 사이의 관계를 정의한다 .
37
VHDL Entity
• 기능의 외부적 측면을 정의한다 .
• 각 입력 혹은 출력은 포트 (port) 이다 .
• 포트의 형식은 모드 (mode) 로 정의된다 .
• Fig 4.28VHDL Design Entity 의그래픽 표현
38
포트 모드의 형식 (1)
• IN: 단지 입력으로만 사용되는 포트이다 .• OUT: 단지 출력으로만 사용되는 포트이다.• INOUT: 양방향 (bidirectional) 포트이다 .• BUFFER: OUT 포트의 특별한 경우로 CPLD 로직으로 피드백이 있을 때 사용된다 .
39
포트 모드의 형식 (2)
• Fig 4.29VHDL Port Modes
• Fig 4.30BUFFER and OUT Modes
40
Port 형식
• 포트 형식은 포트가 가질 수 있는 값을 정의한다 .
• 단일비트나 복수비트를 가질 수 있다 .
41
단일비트 포트형식• BIT 는 ‘ 0’ 혹은 ‘ 1’ 의 값을 가진다 .
• STD_LOGIC 는 9 개의 값 중에 하나를 가질 수 있다 .
• INTEGER 는 전체 수 값을 가질 수 있다 .
42
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’ 가 사용된다 .
43
복수비트 포트형식
• BIT_VECTOR 는 0 또는 1 의 복수 개의 개체을 가질 수 있다 .• STD_LOGIC_VECTOR 는 U, X, 0, 1, Z, W, L, H, - 의 복수 개의 개체를 가질 수 있다 .• 벡터 (Vector) 는 단일 복수비트 변수로 취급되는 신호그룹을 의미한다 .
44
VHDL Architecture
• 내부적 측면을 정의한다 . 즉 , 입력과 출력이 서로서로 어떻게 행동하며 , 또한 다른 내부신호 혹은 기능과 어떻게 행동하는 지를 정의한다 .
• 논리적 관계를 정의하기 위해 연산자 (operators) 를 사용한다 .
45
Architecture Operators
• <= : 식의 오른쪽 값을 왼쪽으로 할당하는 연산자• 논리 연산자는 ‘ and’ 와 ‘ or’ 과 같이 이름으로 할당한다 .
46
우선순위
• 모든 논리 연산자는 동일한 우선순위를 가진다 .
• 우선순위를 명확히 하고자 할 때는 괄호를 사용한다 .
47
병행적 신호 할당 (Concurrent Signal Assignment)
• 병행적 (Concurrent) 은 동시적 (simultaneous)을 의미한다 .• ‘architecture body’ 에서 신호의 순위는 그들이 쓰여진 순서대로 평가되지 않는다 . • 일부 회로에 대한 공통입력에 변화가 있을 때 , 동시에 다른 모든 회로에 영향을 미친다 .
48
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;
49
Example 4.3 – 2-Line-to-4-Line Decoder
• 여러 가지 가능한 방법이 있다 .• 개별 입력이나 벡터를 사용하여 묘사될 수 있다 .• Figure 4.31
50
Example 4.3 – Vector Definitions
• 벡터는 상한선과 하한선을 정의함으로 규정될 수 있다 .– (3 downto 0), (0 to 3), (4 downto 1), (1 to 4).• 벡터는 선택적 신호 할당문 (selected signal assignment statement) 을 사용하여 규정할 수 있다 .
51
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY decode1 IS
PORT(
d1, d0 : IN STD_LOGIC;
y0, y1, y2, y3 : OUT STD_LOGIC);
END decode1;
ARCHITECTURE decoder1 OF decode1 IS
BEGIN
y0 <= (not d1) and (not d0);
y1 <= (not d1) and ( d0);
y2 <= ( d1) and (not d0);
y3 <= ( d1) and ( d0);
END decoder1;
경우 1 – Separate variables
52
경우 2 – Vectors( 요소가 개별적으로 취급됨 )
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY decode2 IS
PORT(
d : IN STD_LOGIC_VECTOR (1 downto 0);
y : OUT STD_LOGIC_VECTOR (3 downto 0));
END decode2;
ARCHITECTURE decoder2 OF decode2 IS
BEGIN
y(0) <= (not d(1)) and (not d(0));
y(1) <= (not d(1)) and ( d(0));
y(2) <= ( d(1)) and (not d(0));
y(3) <= ( d(1)) and ( d(0));
END decoder2;
53
경우 3 – Vectors( 요소가 그룹으로 취급됨 ) ; 선택적 신호 할당문
-- decode2a.vhd-- 4-channel decoder-- Makes one and only one output HIGH for each binary combination of (d1, d0).LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY decode2a IS
PORT(d : IN STD_LOGIC_VECTOR (1 downto 0);y : OUT STD_LOGIC_VECTOR (3 downto 0));
END decode2a;ARCHITECTURE decoder OF decode2a ISBEGIN
-- Choose a signal assignment for y based on binary value of d-- Default case: all outputs deactivatedWITH d SELECT
y <= "1000" WHEN "00","0100" WHEN "01","0010" WHEN "10","0001" WHEN "11","0000" WHEN others;
END decoder;
54
MAX+PLUS II VHDL Templates
• VHDL structure 를 생성하는 지름길을 마련 해준다 .
• Template 메뉴를 사용하여 이용 가능하다 .
• Figure 4.32
55
Creating a Physical Design
• Pin Numbers 할당 (1)
56
Pin Numbers 할당 (2)
57
Altera UP-1 Circuit Board 의 프로그래밍
• 보드와 IBM-PC 의 병렬포트 사이에 리본 케이블인 ByteBlaster 를 사용한다• ByteBlaster 는 컴퓨터의 LPT 포트에 연결된다 .• ByteBlaster 는 또한 UP-1 보드의 JTAG 표준 포트에 연결된다 .
58
ByteBlaster Download Cable
59
Altera UP-1 Circuit Board
60
JTAG Interface
• 4 선 + 전원 + 접지선 .• 데이터는 TDI 선을 통해 입력되고 , TDO 선을 통해 출력된다 .• 전송은 TMS 선과 TCK 선의 클록 신호에 의해 제어된다 .
61
Programming the Design
62
SUMMARY• The STD_LOGIC type can take on any of the following values: - ‘U’ ‘X’ ‘0’ ‘1’ ‘Z’ ‘W’ ‘L’ ‘H’ ‘-’
• STD_LOGIC is defined in a library called ieee. To use STD_LOGIC,include the following two statements at the beginning of a file. LIBRARY ieee; USE ieee.std_logic_1164.ALL;
• A port in VHDL is an input or output. A signal is an internal connection like a wire.
• Concurrent signal assignment statement : the simplest way to relate inputs and outputs in a VHDL EX) x <= (a and b) or c;
• Selected signal assignment statement can act as a truth table in VHDL.