32
Comm DSP & SOC 1/8 2004/07/08 ABEL SOC 연연연 연연연 연연연 339-2 연 ([email protected]/219-2390)

1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 ([email protected]/219-2390)

  • View
    232

  • Download
    11

Embed Size (px)

Citation preview

Page 1: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC1/8 2004/07/08

ABEL

SOC 연구실최지호

원천관 339-2 호([email protected]/219-2390)

Page 2: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC2/33

PLD 란 ?

PLD (Programmable Logic Device)

PLD 는 사용자가 필요로 하는 논리기능을 직접 program 하여 사용할 수 있는 IC

PROM (Programmable Read Only Memory)

PLA (Programmable Logic Array)

PAL (Programmable Array Logic)

SPLD (Simple Programmable Logic Device)

CPLD (Complex Programmable Logic Device)

FPGA (Field Programmable Gate Array)

Page 3: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC3/33

PLD 의 종류 (1)

PROM (Programmable Read Only Memory)한 개의 디코더 (AND 배열부분 ) 와 메모리셀 (Memory array) 의 이차원 배열 (OR 배열 ) 로 이루어짐

PLA(Programmable Logic Array) PROM 과 달리 AND 배열은 입력에 관한 어떤 논리곱을 표현할 있고 , OR 배열은 앞에서 구현된 논리곱들의 논리합을 구현 SOP(Sum of Product) 구현에 잘 맞는 구조이나 , 두개의 배열을 통해서 신호가 전달되므로 delay를 가지는 단점

Page 4: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC4/33

PLD 의 종류 (2)

PAL (Programmable Array Logic) PAL 은 PLA 의 구조와 비슷하나 PAL 은 AND 배열은 사용자가 프로그램 할 수 있고 , OR 배열은 고정 생산 비용이 비교적 적게 들고 , 속도가 빠름

SPLD(Simple Programmable Logic Device) PAL 과 거의 유사한 구조를 가지며 사용할 수 있는 게이트의 개수는 약 200 개 정도

Page 5: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC5/33

PLD 의 종류 (3)

CPLD(Complex Programmable Logic Device) CPLD 는 Altera 에서 상업용으로 제품화CPLD 는 빠른 성능이나 정확한 타이밍의 예측이 필요로 하는 곳에 적합 여러 개의 LAB (Logic Array Block) 와 연결선인 PIA (Programmable Interconnection Array) 로 구성되며 , LAB 은 PAL과 같은 logic 임

Page 6: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC6/33

PLD 의 종류 (4)

FPGA (Field Programmable Gate Array)CPLD 와 달리 복잡한 LAB 을 사용하지 않고 비교적 간단하고 동일한 PLD 가 여러 개 나열되는 구조구현 가능한 게이트의 수와 구조의 복잡도가 가장 높음

Page 7: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC7/33

PLD 를 이용한 회로 개발 과정

PLD 프로그래밍 언어ABEL (Advanced Boolean Expression Language)

PALASM

CUPL (University Compiler for Programmable Logic)

소스 파일 작성( 파일이름 .abl)

컴파일 롬 라이터를 사용 PLD 에 회로 구현

Target board장착

파일이름 .JED

Page 8: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC8/33

ABEL 의 기본 문법 (1)

예약어 : 대문자 , 소문자 , 대소문자 혼용 가능 식별자로 사용 불가능식별자 : 프로그래머 정의

case goto property declarations in state_diagram

device istype test_vectors else library then

enable if state end macro title

endcase module trace endwith node truth_table

equations options when flag pin With

fuses

Page 9: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC9/33

ABEL 의 기본 문법 (2)

Operator Example Description Priority

! !A NOT : one’s complement 1

& A & B AND 2

# A # B OR 3

$ A $ B XOR 3

!$ A !$ B XNOR 3

Logical Operator

Page 10: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC10/33

ABEL 의 기본 문법 (3)

Operator Example Description Priority

- -A Two’s complement 1

- A – B Subtraction 3

+ A + B Addition 3

* A * B Multiplication 2

/ A / B Unsigned integer Division 2

% A % B Modulus : reminder form 2

<< A << B Shift A left by B bits 2

>> A >> B Shift A right by B bits 2

Arithmetic Operator

Page 11: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC11/33

ABEL 의 기본 문법 (4)

Operator Example Description Priority

== A == B Equal 4

!= A != B Not equal 4

< A < B Less than 4

<= A <= B Less than or equal 4

> A > B Greater than 4

>= A >= B Greater than or equal 4

Relational Operator (unsigned)

Page 12: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC12/33

사용하는 PLD 의 핀 배치

P22V10Pin 1 : Clock

Pin 12 : GND

Pin 24 : VCC

Pin 1, 12 와 24 를 제외하고 자유롭게 입출력으로 사용하면 됨 편의상 입력은 2 번부터 순서대로 , 출력은 23 번부터 순서대로 사용하는 것으로 함

Page 13: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC13/33

Device 를 알려준다 .Pin declaration

function 을 정의한다

test_vectors – 입력과 출력을 예상하여 적는다안 적어도 상관없다 .목적은 이 chip 이 원하는 대로 동작하는지시뮬레이션 해보기 위한 목적이다 .

Typical structure of an ABEL program

Page 14: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC14/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

Page 15: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC15/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

1. Module Name 을 시작과 끝을 항상 일치시켜줌 어떤 이름이든 관계는 없음 편의상 자신이 짜는 프로그램과 관계

있는 것으로 함

3 input AND

3 input OR

XYZ

D0

D1

Page 16: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC16/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

1. Module Name 을 시작과 끝을 항상 일치시켜줌2. Title Name 은 어떤 이름이든 상관 없음

Page 17: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC17/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

1. Module Name 을 시작과 끝을 항상 일치시켜줌2. Title Name 은 어떤 이름이든 상관 없음

3. DeviceName 이 출력파일의 이름 저장하는 소스 파일의 이름과 일치 시키는 것이 좋음 ( 편의상 ) DeviceName.JED 즉 , 오류없이 올바로 수행되면 결과물로 myExam1.JED 파일이 생성되며 , 이 파일을 이용하여 롬라이터로 P22v10 을 구울수 있음

Page 18: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC18/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

1. Module Name 을 시작과 끝을 항상 일치시켜줌2. Title Name 은 어떤 이름이든 상관 없음

4. DeviceType 을 적어준다 . 여러 종류가 있을 수 있는데 , 여기에선 P22v10 을 사용

3. DeviceName 이 출력파일의 이름 DeviceName.JED 즉 , 오류없이 올바로 수행되면 결과물로 myExam1.JED 파일이 생성되며 , 이 파일을 이용하여 롬라이터로 P22v10 을 구울수 있음

Page 19: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC19/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

5. P22v10 에 대해 Input Output pin declaration 을 한다 . 아무렇게나 할 수 있는 것이 아니고 datasheet 를 참고하여 작성 교재의 경우 Output Pin 에는 istype ‘com’ 을 기술하나 제공한 컴파일러는 인식하지 못함

1. Module Name 을 시작과 끝을 항상 일치시켜줌2. Title Name 은 어떤 이름이든 상관 없음

4. DeviceType 을 적어준다 . 여러 종류가 있을 수 있는데 , 여기에선 P22v10 을 사용

3. DeviceName 이 출력파일의 이름 DeviceName.JED 즉 , 오류없이 올바로 수행되면 결과물로 myExam1.JED 파일이 생성되며 , 이 파일을 이용하여 롬라이터로 P22v10 을 구울수 있음

Page 20: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC20/33

Example ABEL Program 1

Page 21: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC21/33

Example ABEL Program 1

Page 22: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC22/33

Example ABEL Program 1

Page 23: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC23/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

6. Symbol 을 정의 . 목적은 readability 를 개선하기 위함이다 . 사용자의 기호에 맞게 정의 꼭 정의해서 사용하지 않아도 관계는 없음 정의하지 않을 경우 0 과 1 을 사용

Page 24: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC24/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

6. Symbol 을 정의 . 목적은 readability 를 개선하기 위함이다 . 사용자의 기호에 맞게 정의

7. Equation 을 기술 . D0 는 X and Y and Z 이고 D1 은 X or Y or Z 이다 . & 기호는 ‘ logical and’ # 기호는 ‘ logical or’

Page 25: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC25/33

Example ABEL Program 1

MODULE Example1TITLE 'My Sample Program'myExam1 DEVICE 'P22V10';

"INPUT PINSX, Y, Z PIN 2,3,4;

"OUTPUT PINSD0,D1 PIN 23,22;

"SYMBOL DEFINEH,L = 1,0;

EQUATIONSD0 = Z & Y & X;D1 = Z # Y # X;

TEST_VECTORS([Z,Y,X]->[D0,D1])

[L,L,L]->[L,L]; [L,L,H]->[L,H]; [L,H,L]->[L,H]; [L,H,H]->[L,H]; [H,L,L]->[L,H]; [H,L,H]->[L,H]; [H,H,L]->[L,H]; [H,H,H]->[H,H];

END Example1

6. Symbol 을 정의 . 목적은 readability 를 개선하기 위함이다 . 사용자의 기호에 맞게 정의

7. Equation 을 기술 . D0 는 X and Y and Z 이고 D1 은 X or Y or Z 이다 . & 기호는 ‘ logical and’ # 기호는 ‘ logical or’

8. Test_Vectors 를 기술 . 이 블록은 빼도 전혀 상관은 없다 . 다만 , 이 chip 이 올바로 동작하는지 확인하기 위해서 기술 . 이 예에서는 모든 가능한 입력에 대해서 출력을 기술해 주고 있음 .

Page 26: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC26/33

Structure of ABEL truth table

test_vector 에서 .X. 가 들어간 value 는 don’t care

설계한 회로의 정확한 동작을 검증하기 위해 Truth_table 은 모든 경우를 입력해 주는 것이 좋으나 그렇지 못한 경우 가급적 많이 기술해 주는 것이 좋음

Page 27: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC27/33

Example ABEL Program 2

"MUX2TO1.ABL 프로그램MODULE MULTIPLEXERTITLE 'Quadruple 2-to-1 line MULTIPLEXER'MUXTTO DEVICE 'P22V10';

“INPUT PINSA3,A2,A1,A0, B3,B2,B1,B0, S PIN 2,3,4,5,6,7,8,9,10;"OUTPUT PINSY3,Y2,Y1,Y0 PIN 23,22,21,20;

"VariableA = [A3, A2, A1, A0];B = [B3, B2, B1, B0];Y = [Y3, Y2, Y1, Y0];SEL =[S,S,S,S];

EQUATIONSY = A & !SEL # B & SEL;

END MULTIPLEXER

4bit 2by1 Mux

Page 28: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC28/33

ABEL compiler

Web 에 올린 ABEL 컴파일러 다운로드 및 압축 풀기ABEL.zip

가급적 최상위 경로에 압축 푸는 것이 경로 찾기 쉬움 ( 예 ) c드라이브 바로 밑에

Page 29: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC29/33

ABEL compiler

윈도우 시작 메뉴의 ‘실행’ 메뉴 실행 cmd 입력

도스창에서 ABEL.zip 압축을 해제한 경로로 이동“cd ..” 입력 ( 한폴더 상위로 이동 ) “cd ..” 입력 “cd ABEL” 입력

(ABEL 폴더로 이동 )

“dir/w” 입력 ( 폴더에 있는 파일 display)

Page 30: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC30/33

ABEL compiler

설계한 코드 컴파일ABEL.BAT 배치 파일에 컴파일 설정을 해 놓았음ABEL DeviceName ABEL 확장자는 입력하지 않음

컴파일 실행 결과DeviceName.DOC

DeviceName.JED

DeviceName.LST

DeviceName.OUT

DeviceName.SIM

5 개 파일 생성

Page 31: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC31/33

ABEL compiler

DeviceName.DOC : Document 파일DeviceName.JED : 롬파이터로 구울 파일DeviceName.SIM : 시뮬레이션 결과 파일

자신이 설정한 테스트 벡터에 대해서 모두 pass 하면 오류 없이 설계한 것임

Page 32: 1/82004/07/08 ABEL SOC 연구실 최지호 원천관 339-2 호 (zigprid@ajou.ac.kr/219-2390)

Comm DSP & SOC32/33

ABEL compiler

에러 발생5 개의 파일이 모두 생성되지 않음아래와 같이 에러라고 표시됨 구체적으로 어디에 에러가 났다고 표시해주는 경우도 있으나 단순히 에러라고만 표시하는 경우가 더 많음 직접 분석해서 찾아야 함