오후 6:50 2008-11-15
WinCPUL로 GAL 프로그래밍 하기
조경민 bro@shinbiro.com
===================================================


GAL 정보 얻기
----------------------------------------------------------


먼저 자신이 갖고 있는 GAL의 데이터 시트를 봐야 한다.
내가 갖고 있는 것은 Lattice사의 GAL20V8B-25LPN이다.
www.alldatasheet.com/ 에서 위의 칩명으로 검색해서 보면
GAL칩이 세가지 모드를 지원한다고 나오고 각 모드는 소프트웨어에서
Device이름으로 고르면 선택된다고 나오고 있다.
CPUL에서 Simple모드로 사용할 때는 G20V8AS 를 쓰라고 써있다.


그리고 중요한 핀 정보를 알아야 한다.
G20V8은 다음과 같은 핀 정보를 갖고 있다.


Pin#     Function
     1     CLK/IN
     2     IN
     3     IN
     4     IN
     5     IN
     6     IN
     7     IN
     8     IN
     9     IN
    10     IN
    11     IN
    12     GND
    13     OE/IN
    14     IN
    15     IO
    16     IO
    17     IO
    18     IO
    19     IO
    20     IO
    21     IO
    22     IO
    23     IN
    24     VCC


IO는 Q(출력)용으로 사용 가능하다.


GAL 프로그램 짜기
----------------------------------------------------------
무료 소프트웨어인 Atmel사의 WinCPUL을 사용하였다.


File/New Project한 다음 TestMyMux라고 짓고 입력핀, 출력핀 그런건 그냥 엔터 0으로 친다.
그리고 다음 처럼 소스를 짠다.
그러면 TestMyMux.pld라는 프로젝트가 생성된다.


Name     TestMyMux ;
PartNo   00 ;
Date     2008-11-15 ;
Revision 01 ;
Designer Engineer ;
Company  bro ;
Assembly None ;
Location  ;
Device   g20v8as ;


pin 2 = A;          /* 2번 핀은 IN이며 이를 사용해서 A로 이름지음*/
pin 3 = B;
pin 4 = sel;
pin 15 = y;         /* 15번 핀은 Q이며 이를 이용해서 y로 이름지음*/


y =   sel & A     /* if(sel) y = A; else y = B; 라고 짰음 */
   # !sel & B;


이때 사용할 수 있는 기호는
&는 and이고 #은 or이고 !는 not이다.


컴파일하면 jed 파일이 생기며 이것만 있으면 일딴 ROM writer를 이용해서 GAL칩에
프로그램 할 수 있따.



GAL 시뮬레이션
----------------------------------------------------------
프로그램 하기 전에 간단히 시뮬레이션이 가능하다.
Utilites/Win Sim을 선택하면 시뮬레이터 툴이 실행된다.


File/New를 한 후 Design File...을 선택한 후 TestMyMux.pld를 선택하고 OK를 누른다.
Signal/Add Signal후 A,B,sel,y를 추가하고 Close한다.
Signal/Add Vector를 한 후 4를 누른다.
그리고 테스트 시그널을 만들어야 하는데
A, B, sel은 입력 값이므로 직접 오른 클릭해서 Driver Input low 또는 high를 선택해서
웨이브를 생성한다. 그리고 y는 출력이므로 오른클릭해서 * - simulator determined를 선택한다.
그리고 Simulator/Run Simualtor를 선택하면 결과가 그려진다.


 


 

'KB > hardware soc' 카테고리의 다른 글

VME 버스 아키텍처  (0) 2008.11.12
VGA 구현  (1) 2008.11.12
ps/2 keyboard 동작  (0) 2008.11.07
GAL PLD programming  (0) 2008.11.05
어드레스 버스, 데이터 버스 TTL  (0) 2008.11.05

+ Recent posts