Xilinx ISE Design Suite 13.1 대진대학교전자공학과
1. 프로젝트생성하기 Xilinx ISE Design Suite 13.1 을실행한다. 새로운프로젝트생성을위해 File New Project 를클릭한다.
1. 프로젝트생성하기 New Project Wizard 창에서기본설정을마치고 Next 를클릭한다. 프로젝트이름 프로젝트생성경로 프로젝트설명 Schematic 으로설정
1. 프로젝트생성하기 Project Settings 를아래와같이설정한후 Next 를클릭한다.
1. 프로젝트생성하기 설정한 Project 의요약이아래와같이나온다. 확인후 Finish 를클릭한다.
2. 프로젝트생성하기 Schematic 파일생성 새로운프로젝트가생성되면왼쪽의 Design View 창의 Chip Number 에서오른쪽버튼클릭후 New Source 를클릭한다.
2. 프로젝트생성하기 Schematic 파일생성하기 Schematic 파일을생성해야하므로아래와같이설정후 Next 를클릭한다. Schematic 파일이름 파일경로
2. 프로젝트생성하기 Schematic 파일생성하기 설정한 Source 의요약이아래와같이나온다. 확인후 Finish 를클릭한다.
3. Symbol 추가하기 부품을추가하기위해왼쪽도구모음에서 Add Symbol 을클릭한다.
3. Symbol 추가하기 또는 Schematic 창에서오른쪽버튼을클릭후 Add Symbol 을클릭한다. 단축키를이용하면 Ctrl + M
3. Symbol 추가하기 왼쪽의 Symbols 창에서원하는부품을선택한다.
3. Symbol 추가하기 Schematic 창에서원하는위치에붙여넣는다. Ctrl + 마우스휠 ( 상 / 하 ) 또는 F8 과 F7 을이용해 Zoom 을설정할수있다.
4. I/O 설정하기 I/O Marker Input / Output 을설정하기위해왼쪽도구모음에서 Add I/O Marker 를클릭하거나, Schematic 창에서오른쪽버튼 Add I/O Marker 을클릭한다. 단축키 Ctrl + G
4. I/O 설정하기 I/O Marker 왼쪽에 Options 창이생기며 Input 으로할지 Output 로할지결정할수있다. 여기서는 Add an automatic marker 로설정한다. ( 자동으로 Input/Output 지정 )
4. I/O 설정하기 I/O Marker 아래와같이마우스포인터를부품의핀에가져가면풍선도움말이뜬다. 이렇게 I/O Marker 를그려준다. Input 과 Output 을모두설정한후의 And gate 의 Symbol
4. I/O 설정하기 -pin name 각핀의이름을설정하기위해 Input/Output 핀에서오른쪽버튼 Object Properties 또는핀을더블클릭하거나핀을한번클릭한상태에서 Alt + Enter 을누른다.
4. I/O 설정하기 -pin name 선택한핀에대한 Object Properties 창이생기며아래와같이하면각핀들의이름을바꿔줄수있다. ( 핀의이름은사용자임의설정 ) 2 핀이름입력 1 3
4. I/O 설정하기 -pin name 핀의이름을모두설정해준다.
5. Pin Locking UCF 파일생성 왼쪽창의내용을 Design 탭을클릭해변경한다.
5. Pin Locking UCF 파일생성 Design 탭의현재프로젝트의하위에 Schematic 파일을클릭후오른쪽버튼 New Source 를클릭한다.
5. Pin Locking UCF 파일생성 Implementation Constraints File 선택후 File name 기입후 Next 를클릭한다.
5. Pin Locking UCF 파일생성 Finish 를클릭한다.
5. Pin Locking UCF 파일생성 하위항목을보면 test.ucf 파일이생성된것을볼수있다.
6. Implement Top Module 상단도구모음또는 File Save all 을클릭해저장을한다.
6. Implement Top Module Test 프로젝트에서오른쪽버튼 Implement Top Module 를클릭한다.
6. Implement Top Module 상단도구모음의 Implement Top Module 버튼을클릭하거나 메뉴 Process Implement Top module 버튼을클릭해도된다.
6. Implement Top Module Implement Top Module 를실행하면아래와같이 Running 이라는표시로진행되고있음을말해준다. 성공하면아래와같은페이지가생성된다. 빨간박스와같이 Successful 이면성공이다.
7. Pin Locking UCF 파일수정 CPLD Reports 페이지의왼쪽메뉴의 Pin List 를클릭해보면아래와같이우리가설정하지않아임의로핀번호를할당한것을볼수있다.
7. Pin Locking UCF 파일수정 핀번호를우리가원하는대로설정하기위해서다음과같이한다. 아래의 Process 탭에서그림과같이하위항목에들어가 Lock Pins 를더블클릭한다.
7. Pin Locking UCF 파일수정 Design 탭의 test.ucf 파일을더블클릭해 Open 한다. 아래와같은 Warning 이뜨면 Yes 를눌러준다.
7. Pin Locking UCF 파일수정 아래와같이현재의 UCF 파일을보여준다. 아까지정했던각핀의이름들이있는것을볼수있다. 회로도의 I/O 핀들중각핀에원하는 I/O 번호를다시매겨서저장을한다.
7. Pin Locking UCF 파일수정 아까와같은방법으로 Lock Pins 를더블클릭한다.
7. Pin Locking UCF 파일수정 CPLD Reports 의 Pin List 를보면핀의번호가바뀐것을볼수있다.
8. Simulation Test Fixture 생성 왼쪽창의내용을 Design 탭을클릭해변경한다.
8. Simulation Test Fixture 생성 Design 탭상단의라디오박스중 Simulation 을클릭한다.
8. Simulation Test Fixture 생성 Schematic 파일에서오른쪽버튼 New Source 를클릭한다.
8. Simulation Test Fixture 생성 Verilog Test Fixture 을클릭하고 File name 입력후 Next 버튼을클릭한다.
8. Simulation Test Fixture 생성 Next 를클릭한다.
8. Simulation Test Fixture 생성 Summary 창이나오면 Finish 를클릭한다.
8. Simulation Test Fixture 생성 Design 탭이아래와같이바뀐것을볼수있고, 오른쪽창에는우리가만든 Logic 의소스파일을볼수있다.
8. Simulation Test Fixture 아래와같이주석처리혹은지워주고마지막라인에 end 를입력후그사이에 Test 구문을입력한다. Test 구문입력
8. Simulation Test Fixture Clock 이필요없는 Logic 이라서각 Input 에 0 이나 1 을그리고 100ns 의 Delay 를입력해줬다. Test code 를모두작성했으면 Save all 을눌러저장한다.
8. Simulation Design 탭에서아래와같이파일을한번클릭한다. 아래의 Process 탭에서 Isim Simulator 의하위메뉴중 Simulate Behavioral Model 를더블클릭한다.
8. Simulation - 결과확인 아래와같이 ISim 창이실행되며이창을확인하면결과값을확인할수있다. 빨간박스의시간을수정하면시뮬레이션의총시간을조절할수있다.
8. Simulation - 결과확인 왼쪽의 Name 은설정했던각핀들의이름이나오며, 그옆 Value 는현재노란선상에서의각핀들의값이며, 오른쪽은 Timing 을보여준다. 임의의시간을클릭하면노란선의위치를바꿀수있다. 빨간박스의스크롤로시간대별로관찰할수있으며 Ctrl + 마우스상 / 하휠또는 F7 과 F8 로 Zoom 을설정할수있다.
8. Simulation - 결과확인 아래와같이 286ns 에서의 In/Out 핀의상태를확인할수있다. AND Gate 를사용했으니 IN_1 이 0 과 IN_2 가 1 이니 OUT 은 0 이될것이며, 아래화면확인결과와일치한다. Test code 를수정할경우 Simulation 창을끄고수정해야에러가발생하지않는다.
9. CPLD Writing 이제실습키트에작성한 Logic 을 Writing 하는단계이다. 먼저다운로더를 USB 에연결한다. 실습키트에도전원 (5V) 을핀에유의하며연결한다.
9. CPLD Writing 아래빨간원과노란원에유의하며커넥터를연결한다.
9. CPLD Writing Simulation 창을닫고, Design 탭의 Implementation 으로돌아간다. Process 탭에서다시 Implement Top module 를실행한다.
9. CPLD Writing Process 탭의 Configure Target Device - Manage Configuration Project(iMPACT) 를더블클릭한다.
9. CPLD Writing 다음과같이 ISE impact 창이열리며설문조사를할지물어본다. NO 를클릭한다.
9. CPLD Writing 아래와같이 Launch Wizard 또는 Edit Launch Wizard 를클릭한다.
9. CPLD Writing Configure devices using Boundary-Scan (JTAG) 의 Automatically connect to a cable and identify Boundary Scan chain 을선택후 OK 를누른다.
9. CPLD Writing 다음과같은메시지가뜨면 Yes 를누른다. test.jed 파일을선택후 Open 한다.
9. CPLD Writing 아래와같이설정한후 OK 버튼을클릭한다.
9. CPLD Writing 칩을클릭한후오른쪽버튼 Erase 를클릭해현재 CPLD 칩안의내용을지운다.
9. CPLD Writing Erase 가완료되면아래파란박스에 Erase Succeeded 라는메시지가생긴다.
9. CPLD Writing 다시칩을클릭후오른쪽버튼 Program 을클릭해우리가작성한 Logic 을칩안에 Writing 한다. 아래와같이 Writing 상태가표시된다.
9. CPLD Writing Program Writing 가완료되면아래와같이 Program Succeeded 라는메시지가출력된다.
10. Test Test 하기위해 AND Gate 의 Input 으로설정한 3 번과 5 번핀에 High 신호를입력하고 Output 인 31 번에프로브를연결해확인해보았다.
10. Test 다음과같이 High 신호가출력되는것을볼수있다.
Example. 예제로 JK Filp-Flop 을 Writing 해보겠다.
Example. Simulation 을위해아래와같이테스트코드를작성한다. 빨간박스안의내용은클럭을생성하는코드로 CLK 핀에 1us 단위로 Toggle 입력을넣어줌으로클럭을생성했다. 실제시뮬레이션할때는박스안의내용을적절히수정해서원하는주기의클럭을넣어줄수있다.
10. Test Simulation 결과이다. CLK 이 Rising edge 에서출력핀 FF_Q 가입력에따라변하는파형을볼수있다.
10. Test BreadBoard 는아래와같이꾸몄다. 클럭은오실레이터를이용해입력하고, DIP 스위치와풀업저항을이용해 High 와 Low 를입력한다.
10. Test JK 가토글일떄
10. Test J=1, K=0 Q=1
10. Test J=0, K=1 Q=0