🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/全国大学生集成电路创新创业大赛/官方例程nice_core代码解读分析
官方例程nice_core代码解读分析
全国大学生集成电路创新创业大赛 作者 hibernate 发布于 2021-06-08 15:31(1949 天前) 7484 浏览

大家好,我们团队的名字叫小白联盟,参赛编号是CICC2611。本篇文章主要是想和大家分享一下在学习协处理器的一些收获。

我们对官方提供的蜂鸟E203协处理器参考示例进行分析,例子实现对一个3行3列的矩阵按顺序进行累加和列累加计算。

所以定义了三条指令lbuf、sbuf、rowsome

lbuf指令实现从内存中Load数据至行数据缓存,需要读取操作数rs1,不需要读取rs2,无需返回结果,故func3字段010,此时func7有2^8选择,例子定义了func7为1。

sbuf指令实现从行数据缓存中 store数据至内存,需要读取操作数rs1,不需要读取rs2无需返回结果,故func3字段010,定义func7为2。

rowsome指令实现行累加值的计算,并通过结果寄存器返回累加值,需要读取操作数rs1,不需要读取rs2,且需返回结果,故func3字段010,func7为6。

  三条指令均使用custom3指令类型扩展成自定义指令,故opcode字段均为7‘b11111011’

Nice_core信号解读

2175.png (1701×798)

译码段,对输入指令,将指令func3字段func7字段及opcode段译码

2177.png (1194×904)

判断是否是custom3类型扩展指令,判断func3字段以及func7对指令进行译码,判断输入那一条指令

2179.png (1271×151)

当判断输入指令为其中一条时,将custom_multi_cyc_op和custom_mem_op置1,用于后续操作和存储判断

2180.png (1207×173)

状态机,判断指令的状态切换

2181.png (1518×1134)

2182.png (1735×785)





全部回复 2
太空接线员
太空接线员595 天前 · 1 楼

感谢,写的非常好!

匿
1664 天前 · 2 楼

请问还有后半段的解读吗

💡 请 登录 后参与讨论(微信扫码即登录/注册)