ASIC 설계 레시피
📝 블로그 정리 & 업데이트 블로그 정리를 안 한지 거의 2~3년이 다 되었네요. 정말 오랜만에 기존 포스트들을 정리하고, 프로필도 업데이트하였습니다. 그동안 과제나 개인 연구로 참 바쁘게 살아왔습니다. 작년 말부터 논문 서브미션을 시작했고, 올해는 여러 편의 논문을 제출할 예정입니다. 🙏 부디 좋은 결과가 있기를 바랍니다. 작년에는 Tape-out을 완료했고, 올해는 두 번째 칩을 제작하게 되었습니다. 이 포스트에서는 ASIC 설계 전반에 대한 이야기를 담으려고 합니다. 다만, NDA 문제로 인해 모든 스크립트를 공개하기는 어렵습니다. 저는 65nm, 28nm PDK를 사용하고 있기에, 실제 Industry 수준과 비교하면 많이 떨어질 수도 있습니다. 그럼에도 불구하고, 학교에서는 ASIC 설계/검증/측정 등 전 과정을 제대로 가르치기 어려운 현실이 있습니다. 때문에 학부생이나 석사 학생들은 ASIC 설계를 해보고 싶어도, 채용 공고에서 이야기하는 PI / PD 등의 직무에서 무슨 일을 하는지 정확히 알기 어려울 것입니다. 이제 막 시작하는 초심자들을 위한 글을 쓴다는 생각으로, 시간이 날 때마다 틈틈이 이 포스팅을 마무리 지을 계획입니다.
Vitis HLS ERROR: [IMPL 213-28] 해결법
Vitis HLS Window Version의 경우 ERROR: [IMPL 213-28]를 Tool 공부를 시작하자마자 보게 될 것이다.
Synthesizable SystemVerilog Design 을 위한 이야기
SystemVerilog 는 흔히 Verification 을 위한 언어로 취급되어 오고 있지만, 링크 에 따르면 합성에서도 여러가지 이점을 가지고 있다. Verilog 는 2005 년을 기점으로 새로운 IEEE 규약이 갱신되고 있지 않다. 즉, 2005 년부터 Verilog 는 SystemVerilog 에 통합되었다고 이해하는 것이 좋다. SystemVerilog 는 Verilog 에 비해 Functional Coding 에 있어 코드의 길이를 크게 줄일 수 있다. 또한, Package 와 Interface 등을 Generate 과 함께 사용하여 설계의 자동화에 큰 기여를 할 수 있다. Verilog 에서는 버그로 판별하던 것들을 에러로 인식하게 함으로써 Synthesis/Simulation 의 차이를 줄이는 것에도 큰 기여를 할 수 있다. 이 포스트에서는 설계시 Verilog 에 비해 유리하게 사용될 수 있는 SystemVerilog 의 특징들을 공부해 보도록 할 것이다.