JunningWu / AIChip

Aiming at an AI Chip based on RISC-V and NVDLA.
Apache License 2.0
21 stars 4 forks source link

Learning NVDLA CMAC HW Code #17

Open redpanda3 opened 5 years ago

redpanda3 commented 5 years ago

cmac 分为两个大的部分,cmac_reg和cmac_core。

reg部分负责和csb和dp交互,core负责计算。ping-pong reg,在官方文档里有介绍。

重点说说core,

因为core是要计算weight和data的向量积的,其中weight是要被缓存的,然后data不断被push进去。所以weight的部分先被存入shadow区,然后有data进来并满足csc那边进来的stripe的start&end的条件的话,拿出来卷积。

还有几个retiming的模块。。。这个就不说了。

redpanda3 commented 5 years ago

欢迎讨论。

redpanda3 commented 5 years ago

https://github.com/redpanda3/soDLA-ipynb/blob/master/CMAC.ipynb

这是我的对它的重构。即使用chisel做了最大程度地代码压缩,也是需要一些时间才能读懂的。