HDL로 작성한 연산 블록을 테스트하려는데, HDL로 제어 블록이니 데이터패스니 그냥 작성하기는 너무 어려워서... 대안을 찾아보려 했는데요.

HLS 툴을 쓰는 방법이 있지만,

  • 라이선스가 있는 Xilinx Vivado HLS는 출력물을 Xilinx 제품에 안 쓰면 라이선스 철퇴맞는다는 답변이 있고 (예상은 했지만 역시나)
  • Mentor Catapult 등등 있긴 한데 라이선스가 없으니...

위키백과에 가면 이것저것 있는데, 거의 다 오래되었거나 유료고... 좋아보이는 게 안 보이네요.

다른 툴을 둘러보다가, 용도가 아예 다르긴 하지만 RTL 모델링 툴을 둘러봤습니다.

Python 기반

MyHDL

파이썬으로 쓰는 HDL 언어 정도가 되겠네요. Verilog로 TDD 하려면 테스트벤치 쓰기가 너무나 어려운데, 파이썬으로 테스트케이스 쓰면 편리할 것 같습니다.

문제는 hierarchy로 블록을 만들었을 때, 전체 블록 대신에 소블록별로 내보내는 방법이 있는지 모르겠네요.

PyMTL

여기는 아키텍처 모델링하는 데에 방점이 있어 보입니다. Behavior 레벨, Cycle 레벨, 그리고 RTL 레벨 각각에 대해 디자인을 만들면 이에 대한 테스트를... 고급지게... 할 수 있는 것 같아요.

+ Recent posts