10시간은 아끼고 가자! 실용적인 팁
1) 저장 기능을 숙지하자.
지금쯤이면 눈치 챘겠지만, verilog는 import를 하면 해당 파일이 복제되는게 아니라 참조되는 형식이라, 여러 프로젝트 파일에서 같은 파일을 import하면 코드가 서로 뒤죽박죽이 된다. 이를 방지하기 위해서 archive 형태로 저장을 하자. 그러면 독립적인 파일이 형성된다.

[기디실] 기말 플젝, I can do! 만점 A+ 비결 — 3공학관의 악동 (tistory.com)
여기를 보면 알겠지만, 프로젝트를 12월 4일에 시작했는데, 파일은 12월 10일부터 저장이 되어있다. 즉, 파일 독립 저장 기능이 있다는 것을 모르고, 약 1주 동안 불편한 방식으로 각각 파일을 저장하고 수정하는 과정을 거쳤다. 저장하기 시작하면, 나중에 부분적으로 고치기도 쉽고, 전에 했던 파일을 재사용하기도 쉽다.
2) 완벽하게 하지 말고, 빠르게 하자.
이 프로젝트를 수행하면서 처음 마주하는 실수, 혹은 시간 낭비는 너무 완벽하게 하려는 것이다. 그러나 각각을 잘 구현하면 되는 것이지, 디테일은 그다지 중요하지 않다. 완벽한 배경 사진을 만드는데 5시간을 쏟는 것보다, 배경은 대충 1~2시간만 투자하고 스프라이트로 게임답게 만드는 것을 먼저 하는게 낫다. 무조건 점수 먼저 취할 수 있는것, 다음 단계를 위해 기초가 되는 것을 먼저 하는게 낫다. 배경은 만들어보았자 거기서 끝이고, 후속 과업이랑 큰 연관 관계가 없다.
더불어 스프라이트 잘 찍는 것도 그다지 중요한 문제가 아니다. 시간이 정 없으면 스프라이트 잘 만드는데 쏟지 말고, 일단 ghost 캐릭터를 이용해 게임을 잘 만들고, 나중에 고치면 된다. 이런 방식으로 해야 빠르게 verilog의 형식와 활용법을 익힐 수 있고, 스트레스도 덜 받는다. 어지간한걸 완성하고 나면, 처음에 막혔던 부분들도 이해가 돼서 디버깅을 더 효과적으로 할 수 있을 것이다.
3) verilog 파일로 만들지 말고, system verilog로 만들자.
스프라이트 주차 (마지막 주차)에서 verilog로 만든 다음에, system verilog로 타입을 바꾸었을 것이다. 이렇게 하지 말고, 앞으로는 create files 에서 system verilog 파일로 만들어라! 기존 방식이 무엇이 문제인가 하면, 나중에 저장해서 압축해제한 다음에 다시 쓰기 사용하면 system verilog 타입을 다 바꾸어주어야 한다. 후반 가면 스프라이트가 열 몇개 있을텐데, 매번 압축을 풀 때마다 type을 바꿀 순 없는 노릇이다. 더불어 system verilog로 안 하면, vistis로 넘어가 나중에 소리 구현할 때 문제가 발생한다.
모든 파일을 verilog대신 system verilog로 할 필요는 없으며, sprtie에 대해서만 하면 된다.
sprite_ID.v -> sprite_ID.sv

4) 기능을 하나씩 독립적으로 만들고, 메인 파일에 추가한다.
하나의 거대한 파일에 계속 누덕누덕 코드와 파일을 추가하는 것보다, 조그맣게 새 파일을 만들어 새로운 기능을 추가한 다음에 코드에 대한 확신이 생기면 메인 파일에 추가하는 편이 비트스트림 생성 속도도 훨씬 빠르고, 디버깅하기도 쉽다.
예컨대, 시계 기능을 만든다하면, 시계를 새 파일에서 만들어보고, 잘 돌아가는지 확인한 다음 원본에 넣는 것이 낫다. 충돌과 라이프 시스템을 만든다면, 일단 시계나 학번 스프라이트 잡다한 것은 없는 파일에서 만들어보고, 나중에 결합하는 편이 낫다.
기초 방향성
1) 스프라이트 학번 만들기 (0~9, 각 숫자 잘 만들어 둘 것)
(이후 스프라이트 10개 정도 만들어야 하는데, 순식간에 만들 수 있도록 첫 번째 때 철저히 준비할 것.)
[기디실] 도트 생성기 — 3공학관의 악동 (tistory.com)
[기디실] 도트 생성기
1. 해당 사이트로 들어간다. Piskel - Free online sprite editor (piskelapp.com) Piskel - Free online sprite editor Piskel is a free online editor for animated sprites & pixel art Create animations in your browser. www.piskelapp.com 2. 원하는 그
akdong55.tistory.com
2) 스프라이트 벽 충돌 시 LED가 COUNTER로 작동하게 구현
(직접 평가 요소는 아니지만, 다른 코딩을 쉽게 함)
3) 숫자 표시기 (timer)
99초에서 1초로 떨어지도록 구현. 0초가 되면 멈춤
숫자 출력 부분과 시간 계산 부분을 서로 독립적으로 만들어보려 할 것
4) 숫자 표시기 (score)
앞서 만든 timer의 숫자 출력 부분을 그대로 카피해서 쓸 것
처음에는 score 대신, led로 구현한 counter의 숫자를 대입해 볼 것
(불필요할 가능성이 크지만, 응용력이 좋아짐)
'전공 | 기초아날로그,디지털실험' 카테고리의 다른 글
[리포트] 덜 고통스럽게 쓰기 (0) | 2023.09.29 |
---|---|
[기아실] 시간을 아껴보자! (0) | 2023.09.04 |
[기디실 플젝] I can do! 만점 A+ 비결 (0) | 2023.09.04 |
[기디실 플젝] 도트 생성기 (0) | 2023.05.27 |
[기디실] Week6. Block Design -> Vitis 실행 순서도 (1) | 2022.10.23 |
10시간은 아끼고 가자! 실용적인 팁
1) 저장 기능을 숙지하자.
지금쯤이면 눈치 챘겠지만, verilog는 import를 하면 해당 파일이 복제되는게 아니라 참조되는 형식이라, 여러 프로젝트 파일에서 같은 파일을 import하면 코드가 서로 뒤죽박죽이 된다. 이를 방지하기 위해서 archive 형태로 저장을 하자. 그러면 독립적인 파일이 형성된다.

[기디실] 기말 플젝, I can do! 만점 A+ 비결 — 3공학관의 악동 (tistory.com)
여기를 보면 알겠지만, 프로젝트를 12월 4일에 시작했는데, 파일은 12월 10일부터 저장이 되어있다. 즉, 파일 독립 저장 기능이 있다는 것을 모르고, 약 1주 동안 불편한 방식으로 각각 파일을 저장하고 수정하는 과정을 거쳤다. 저장하기 시작하면, 나중에 부분적으로 고치기도 쉽고, 전에 했던 파일을 재사용하기도 쉽다.
2) 완벽하게 하지 말고, 빠르게 하자.
이 프로젝트를 수행하면서 처음 마주하는 실수, 혹은 시간 낭비는 너무 완벽하게 하려는 것이다. 그러나 각각을 잘 구현하면 되는 것이지, 디테일은 그다지 중요하지 않다. 완벽한 배경 사진을 만드는데 5시간을 쏟는 것보다, 배경은 대충 1~2시간만 투자하고 스프라이트로 게임답게 만드는 것을 먼저 하는게 낫다. 무조건 점수 먼저 취할 수 있는것, 다음 단계를 위해 기초가 되는 것을 먼저 하는게 낫다. 배경은 만들어보았자 거기서 끝이고, 후속 과업이랑 큰 연관 관계가 없다.
더불어 스프라이트 잘 찍는 것도 그다지 중요한 문제가 아니다. 시간이 정 없으면 스프라이트 잘 만드는데 쏟지 말고, 일단 ghost 캐릭터를 이용해 게임을 잘 만들고, 나중에 고치면 된다. 이런 방식으로 해야 빠르게 verilog의 형식와 활용법을 익힐 수 있고, 스트레스도 덜 받는다. 어지간한걸 완성하고 나면, 처음에 막혔던 부분들도 이해가 돼서 디버깅을 더 효과적으로 할 수 있을 것이다.
3) verilog 파일로 만들지 말고, system verilog로 만들자.
스프라이트 주차 (마지막 주차)에서 verilog로 만든 다음에, system verilog로 타입을 바꾸었을 것이다. 이렇게 하지 말고, 앞으로는 create files 에서 system verilog 파일로 만들어라! 기존 방식이 무엇이 문제인가 하면, 나중에 저장해서 압축해제한 다음에 다시 쓰기 사용하면 system verilog 타입을 다 바꾸어주어야 한다. 후반 가면 스프라이트가 열 몇개 있을텐데, 매번 압축을 풀 때마다 type을 바꿀 순 없는 노릇이다. 더불어 system verilog로 안 하면, vistis로 넘어가 나중에 소리 구현할 때 문제가 발생한다.
모든 파일을 verilog대신 system verilog로 할 필요는 없으며, sprtie에 대해서만 하면 된다.
sprite_ID.v -> sprite_ID.sv

4) 기능을 하나씩 독립적으로 만들고, 메인 파일에 추가한다.
하나의 거대한 파일에 계속 누덕누덕 코드와 파일을 추가하는 것보다, 조그맣게 새 파일을 만들어 새로운 기능을 추가한 다음에 코드에 대한 확신이 생기면 메인 파일에 추가하는 편이 비트스트림 생성 속도도 훨씬 빠르고, 디버깅하기도 쉽다.
예컨대, 시계 기능을 만든다하면, 시계를 새 파일에서 만들어보고, 잘 돌아가는지 확인한 다음 원본에 넣는 것이 낫다. 충돌과 라이프 시스템을 만든다면, 일단 시계나 학번 스프라이트 잡다한 것은 없는 파일에서 만들어보고, 나중에 결합하는 편이 낫다.
기초 방향성
1) 스프라이트 학번 만들기 (0~9, 각 숫자 잘 만들어 둘 것)
(이후 스프라이트 10개 정도 만들어야 하는데, 순식간에 만들 수 있도록 첫 번째 때 철저히 준비할 것.)
[기디실] 도트 생성기 — 3공학관의 악동 (tistory.com)
[기디실] 도트 생성기
1. 해당 사이트로 들어간다. Piskel - Free online sprite editor (piskelapp.com) Piskel - Free online sprite editor Piskel is a free online editor for animated sprites & pixel art Create animations in your browser. www.piskelapp.com 2. 원하는 그
akdong55.tistory.com
2) 스프라이트 벽 충돌 시 LED가 COUNTER로 작동하게 구현
(직접 평가 요소는 아니지만, 다른 코딩을 쉽게 함)
3) 숫자 표시기 (timer)
99초에서 1초로 떨어지도록 구현. 0초가 되면 멈춤
숫자 출력 부분과 시간 계산 부분을 서로 독립적으로 만들어보려 할 것
4) 숫자 표시기 (score)
앞서 만든 timer의 숫자 출력 부분을 그대로 카피해서 쓸 것
처음에는 score 대신, led로 구현한 counter의 숫자를 대입해 볼 것
(불필요할 가능성이 크지만, 응용력이 좋아짐)
'전공 | 기초아날로그,디지털실험' 카테고리의 다른 글
[리포트] 덜 고통스럽게 쓰기 (0) | 2023.09.29 |
---|---|
[기아실] 시간을 아껴보자! (0) | 2023.09.04 |
[기디실 플젝] I can do! 만점 A+ 비결 (0) | 2023.09.04 |
[기디실 플젝] 도트 생성기 (0) | 2023.05.27 |
[기디실] Week6. Block Design -> Vitis 실행 순서도 (1) | 2022.10.23 |