SOC 연구실 최지호 원천관 339-2호 (zigprid@ajou.ac.kr/219-2390) ABEL 프로젝트 SOC 연구실 최지호 원천관 339-2호 (zigprid@ajou.ac.kr/219-2390)
프로젝트 개요 학번과 이름을 하나 씩 입력해서 7-segment 에 차례로 출력하는 PLD 를 ABEL 로 설계 사용 Device ? Pin assign ? Compiler ?
사용 PLD PAL22V10
7-segment 디자인
입, 출력 포트 지정 접지 전원 SEL 입력 출력 12번 핀 24번 핀 2번 핀 3번 ~ 7번 핀 (5개) 23번 ~ 17번 핀 (7개)
I/O pin assign 규칙 (준수 할 것) 입력 3번 ~ 7번 핀 (5개) MSB: 3번 핀 LSB : 7번 핀 출력 23번 ~ 17번 핀 (7개) MSB: 23번 핀 LSB : 17번 핀
각 입력 핀의 용도 정리 SEL(2) : 학번을 입력 받을지 이름을 입력 받을지를 결정한다. Input(3~7) : 학번 혹은 이름을 입력한다. 0,0,0,0,0 ? Answer is 0 or ‘A’.
전체 설계 방법 (1) select 로 assign 된 핀에 Low (‘0’) 신호가 들어 올 경우 ‘학번’을 입력 하는 것으로 인식한다. 5개의 입력 핀에서 각각 1bit 신호를 받는다. 입력 된 5bit 신호는 프로그래머가 설정한 7bit 신호로 변환된다. decoding 된 신호는 7개의 output pin을 통해 1bit씩 각 각 출력 된다. 7-segment 디자인을 참조하여 각각의 pin을 배치한다. select 로 assign 된 핀에 High (‘1’) 신호가 들어 올 경우 ‘이름’을 입력 하는 것으로 인식한다. 앞장에서 설정 한 대로
전체 설계 방법 (2) H 2 G A 7 3 6 5 Example if select = 1; if select = 0; 7 3 6 5 각각의 입력은 맨 앞 자리부터 하는 것으로 지정
(상) 7-segment를 이용한 학번과 이름쓰기 7-segment for alphabet & numeric a f b g e c I(1) d A B(8) C D(0) E F G(6) H 색칠되어 있는 7-segment는 표현이 좀 어색한 것 J(7) K L M N O P Q(9) R S(5) T U V W X Y(4) Z(2) (3) 10
규칙 정리 각 입 출력의 핀 배열은 앞에서 정한 바에 따른다. 7-segment connection은 앞에서 디자인 된 바에 따른다. test-vector에 학번과 이름(이름은 이니셜 3자리)을 모두 적어준다. 학번과 이름의 입력은 앞 에서부터 차례로 한다. 200744324 -> 처음에 2 그 다음 0 이런 순서로.. 한민혁 -> 처음에 H 그 다음 M 그 다음 H
ABEL compiler Web 에 올린 ABEL 컴파일러 다운로드 및 압축 풀기 ABEL.zip
ABEL compiler 윈도우 시작 메뉴의 ‘실행’ 메뉴 실행 cmd 입력 도스창에서 ABEL.zip 압축을 해제한 경로로 이동 “cd ..”입력 (한폴더 상위로 이동) “cd ..” 입력 “cd ABEL”입력 (ABEL 폴더로 이동) “dir/w” 입력 (폴더에 있는 파일 display)
ABEL compiler 설계한 코드 컴파일 컴파일 실행 결과 ABEL.BAT 배치 파일에 컴파일 설정을 해 놓았음 ABEL DeviceName ABEL 확장자는 입력하지 않음 컴파일 실행 결과 DeviceName.DOC DeviceName.JED DeviceName.LST DeviceName.OUT DeviceName.SIM 5개 파일 생성
자신이 설정한 테스트 벡터에 대해서 모두 pass하면 오류 없이 설계한 것임 ABEL compiler DeviceName.DOC : Document 파일 DeviceName.JED : 롬파이터로 구울 파일 DeviceName.SIM : 시뮬레이션 결과 파일 자신이 설정한 테스트 벡터에 대해서 모두 pass하면 오류 없이 설계한 것임
ABEL compiler 에러 발생 5개의 파일이 모두 생성되지 않음 아래와 같이 에러라고 표시됨 구체적으로 어디에 에러가 났다고 표시해주는 경우도 있으나 단순히 에러라고만 표시하는 경우가 더 많음 직접 분석해서 찾아야 함
과제 1.복잡한 입력과 출력에 대한 정의를 제대로 하였는가? (분석) 2. ABEL의 구문 오류 없이 구현 하였는가? (구현) 3. Test Vector를 이용하여 입력의 변화에 따른 결과를 제시하였는가? (분석, 구현) 자신의 학번과 이름 이니셜을 출력할 수 있도록 4. 정확한 코드가 생성되었는가? (신뢰성) ABEL test vector에 대한 결과 (OK) 5. 구문을 readability가 있게 작성하였는가? (심미성) Set 사용, when 사용, 등등 6. 보고서에 코드 sample, Test vector, 구문 설명 등이 자세히 들어가 있는가? (문서화)
과제 기간: 12/1일 까지, deadline을 엄수하여야 함 (2일까지 늦게 제출하는 것은 받음 단 하루 지연에 -10점, 2일 이후 (12/3이후)는 받지 않음. 과제 제출 방법: e-mail로 제출 제출 서류: paper, 소스 코드와 컴파일 출력 파일을 zip하여 제출 File format: (1) StuNum_Name.zip 문서 작업 : MS office 를 사용(2007 버전 제외), 문서에 소스코드를paste하고 설명을 작성 한 후, 시뮬레이션 결과를 캡쳐하여 paste할 것. 조교 e-mail: zigprid@ajou.ac.kr 카피 적발 시 쌍방 0점 처리. 메일 제목은 반드시 [논리회로과제]로 시작, 보내는 메일은 ajou 웹 메일(ooooo@ajou.ac.kr) 사용 – 자동 필터 링 되도록 하기 위함. 규칙을 어길 시에 받는 불이익은 본인이 감수하여야 함. [논리회로과제] 199922724_ 최지호 ABEL 프로그램 제출합니다. 정상적으로 제출 시 12/2일 6시경 회신을 받게 됨.