버블 메모리쪽 모듈 대부분은 always @(sensitivity list) 구문으로 카운터를 작동시킨 후, 올라가는 카운터값에 대응하는 always @(*)구문으로 값을 대입하는 컴비네이셔널 로직을 사용했습니다.
버블 메모리 자체가 비동기라 마스터 클럭을 쓰는 것 자체가 의미가 없었거든요. 각각 신호에 따라서 각각 부분들이 움직이니까요.
그런데 SPI 플래쉬에서 데이터를 불러오는 걸 짜려고 하는데 이건 비동기가 아니니까... 마스터 클럭만에 의존하는 스테이트 머신을 만들었는데요
테스트로 합성해보니 아예 통째로 인스턴스를 추가해주더라구요.
거의 완성한 기념으로 깃허브에 소스를 올려두었습니다.
https://github.com/ika-musume/BubbleDrive8
작년에 베릴로그 3달배운 학부생이 실전에서 어떻게 스파게티코드를 짜는지 보실 수 있습니다.
깃은 잘 몰라갖고 그냥 파일 하나하나 수정했는데 쓸데없이 커밋이 많아져서 뭐 조치를 취하든가 해야겠네요.
git은 [git add .]으로 변경된 파일들을 한방에 스테이징하는 방법이 있긴 합니다. 만약에 좀 더 정교한 스테이징이 필요하다면 [git add -p]를 쓰면 됩니다. 사실 이쪽이 더 권장되긴 하는데, 급하거나 귀찮다는 이유로 그냥 점 하나 찍고 마는 경우가 더 많긴 많아서…
참고:
https://siyoon210.tistory.com/103
https://blog.outsider.ne.kr/1247