![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
chisel入门
文章平均质量分 64
顺便记录一下入门细节
铭....
这个作者很懒,什么都没留下…
展开
-
chisel入门初步2_2——-1/2次方生成器
所以,我们可以仅对前面变化较快的地方建立相应的查找表,而当输入变大后,我们可以直接采用条件判断的方式进行输出的划分。考虑到-1/2次方对于硬件设计中的艰难性——无论是对时间和资源的消耗还是对脑力的消耗,这里对其中的主要使用查找表的方式获取对应的结果。由之前的GCN网络的介绍可以得知,我们需要输入两个乘数(两个节点的节点度),并输出他们乘积的-1/2次方,此处由于当时设计的booth编码的乘法器为有符号数,而此处是无符号数,实在懒得再写一份了,这里直接写个乘号,留给chisel自己去优化吧。原创 2024-03-04 18:03:53 · 255 阅读 · 0 评论 -
chisel入门初步2_1——乘累加器设计
乘累加器可有效用于节点聚合阶段,将相邻节点的特征聚合。若特征过多,可以使用多个乘累加器,类似SIMD的方式进行并行执行,这里设计的乘累加器位宽为3*8=24bit,输入的乘数限制为8bit位宽。对于聚合阶段,节点之间有较高的并行性,为此设计了一个乘累加器。上述测试代码可生成vcd波形,可使用GTKwave等方式进行打开。在vscode中使用metals进行测试,chisel实现如下。原创 2024-03-04 16:42:08 · 495 阅读 · 0 评论 -
chisel入门初步2_0——使用chisel完成一个混合机制的GCN网络搭建
GCN网络的机制在这里不细谈了,可以看看b站同济子豪兄相关的论文精读视频,这里简单说明一下混合机制的GCN。首先说一下什么是混合机制。对于GCN网络而言,可以分为两个主要的硬件步骤聚合(Aggregation)和组合(Combination)。聚合阶段就是将一个节点相邻的节点特征乘以某个特定的权重相加的过程,组合阶段是一个多层感知机结构,可以使用标准的神经网络阵列进行加速。下面截取一段GCN网络的公式。原创 2024-03-04 16:27:51 · 569 阅读 · 0 评论 -
chisel入门初步1——基4的booth编码的单周期有符号乘法器实现
本质来说就是一个裂项重组,乘法器最重要的设计是改变部分积的数量,另外在考虑有符号数的情况下,最高位符号位有特别的意义。(注:部分积是指需要最后一起加和的所有部分乘积的项)下面直接套用其他人图片进行展示,来源如下其中B−10可以看到,基2的booth编码并没有改变部分积的数量,在实际运行时,基2的booth编码在某些情况下无法提速,甚至可能降速,所以引入基4的booth编码。原创 2024-01-18 13:07:03 · 1419 阅读 · 0 评论 -
Chisel入门初步0
注:以下所有配置在Ubuntu22.04笔记本中运行。原创 2024-01-15 15:22:51 · 447 阅读 · 0 评论