이제, 보드의 LED 를 조작할 차례이다.
우선 보드 매뉴얼에 잘못된 부분이 있어서 좀 삽질했다.
알고보니 보드 설명이 거꾸로 되어있었던거였는데, 전원이 왜 안들어오지 하면서 한참을 헤맸다.
우선 보드 제조사에서 제공하는 회로도를 봐야한다. 핀이 어디에 연결되어있는지를 봐야하기 때문이다.
대충 Schematic 은 이렇게 생겼는데
핀번호를 확인해준다.
중요한건 아니지만 버튼이 눌렀을 때 GND 가 되는 풀업저항이 달려있다는걸 확인할 수 있다.
전원이 들어왔을 때 ON 되는 빛은 GREEN 이던데 Schematic 에서는 RED 라고 되어있었다. 이것도 오류겠지.
정리된 자료는 아래와 같다. 비교하면 동일하다.
우선 빈 프로젝트를 만든다.
프로젝트 제목을 입력한다.
이 때, top 모듈의 이름과 이 제목이 다를 경우 추후 수정이 필요하게 된다.
때문에 나는 추가적으로 수정을 가하게 되었는데 이는 후술한다.
Empty로 설정
아무것도 Add하지 말고 Next
자신에게 맞는 FPGA 선택
그 뒤로는 전부 Next 하고 Finish 하면 된다.
이제 프로젝트가 만들어졌는데,
로 새 .v 파일을 만들어준다.
아주 간단한 and 게이트 모듈을 만들어본 뒤
Assignment - Pin Planner 진입하여 Pin 을 할당해준다.
각 핀의 정보는 FPGA 출고시부터 정해져있으므로, 핀 번호를 입력하면 된다. 아래는 a 노드를 88번, b 노드를 89번, c 노드를 84번에 연결했는데 이는 각각 SW1(==버튼), SW2, LED1 이다.
여담으로 디시설 수업때는 Xilinx FPGA 가 달린 Digilent 사의 보드를 활용했었는데, 이 떄는 Constraint 파일을 따로 다운받아서 .xdc 파일을 수정해야 했었는데
이게 상당히 번거로웠었다.
하지만, Altera FPGA 의 경우 Pin Planner 가 존재했는데 이 쪽이 상당히 편했다.
이제 컴파일을 하고,
Programming 을 해 준다.
이 때 USB-Blaster 가 나와야 정상이다. 안나오면 드라이버가 제대로 설치되지 않은 것이다. 안전모드에서 제대로 깔았는지를 다시한번 확인하자.(인텔놈들 왜 드라이버에 디지털서명을 하지 않은거냐)
만약, 나처럼 top module 의 이름과 project 의 이름이 다른 경우에는 아래와 같은 조치를 취해줘야 Compile 시 에러가 나타나지 않는다.
아니면 Top-level design entity "~~" is undefined 에러가 나타날 것이다.
이 블로그와 위 스택오버플로우 를 참조했는데
여기를 들어가서
처음에는 led_test 라는 프로젝트명으로 되어있을건데
top module 의 이름인 my_and 로 바꿔줘야 한다.
추가적으로, 만약 소스파일 이름이나 확장자명을 .sv로 바꾸거나 했다면 General 밑의 Files도 건드려줘야한다.
Remove 뒤 .sv 파일을 잡도록 Add 해줬다.
이제 보드의 기본동작을 테스트해봤으니 활용폭을 서서히 넓혀볼 생각이다.