随笔分类 -  Chisel3

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页
摘要:https://mp.weixin.qq.com/s/6McbqOKM4fu4J5vdpZvxKw 简单介绍异步队列(AsyncQueue)的实现。 ​​ 0. 异步队列 异步队列的两端分属不同的时钟域,拥有各自的复位逻辑。 异步队列用于存值的一端为上游端(source),用于取值的一端为下游端(s 阅读全文
posted @ 2019-05-23 08:30 wjcdx 阅读(411) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/7C8ZmPpwAqFqyKjL9K40Fg 介绍util中定义的注解(Annotations)。 ​​ 1. Annotation 注解提供一些信息,供后续阶段使用。 之前在使用chisel生成verilog的时候,会同时生成后缀为".anno 阅读全文
posted @ 2019-05-21 22:42 wjcdx 阅读(465) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/UYVSO3XFJmhe5bUD_XbMLg 先介绍如何使用AddressAdjuster,然后分析UI参数的生成及使用。 ​​ 1. AddressAdjuster的使用 a. 创建AddressAdjuster实例 ​​ 注意usage()方 阅读全文
posted @ 2019-05-08 22:06 wjcdx 阅读(363) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/X0s5CWN84GEiwpNR7tiRgA 基于AddressAdjuster介绍LazyModule的实现。 参考链接:https://github.com/freechipsproject/rocket-chip/blob/master/s 阅读全文
posted @ 2019-05-06 23:05 wjcdx 阅读(382) 评论(2) 推荐(0)
摘要:https://mp.weixin.qq.com/s/UHGq74sEd9mcG5Q3f-g3mA 介绍AddressDecoder的实现。 ​​ 1. 基本定义 ​​ 每个Port包含多个地址集合(Seq[AddressSet]),需要确定输入的地址是属于哪一个Port。 AddressDecod 阅读全文
posted @ 2019-04-14 13:38 wjcdx 阅读(306) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/ZsEVt1GslL7ufJdJlgpfNQ 介绍AddressSet的实现。 ​​ 1. 基本定义 ​​ 使用base/mask定义的一个地址集合,之所以用集合(Set)而不是范围(Range),因为范围一般情况下是指一个连续的范围,而base 阅读全文
posted @ 2019-04-14 13:37 wjcdx 阅读(491) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/s3hr5JJX2_pwNgdu8WqV0Q 介绍enumerateMask的实现。(仅供理解,非严谨证明) ​​ 1. 基本定义 enumerateMask的意思是枚举掩码。其功能是把mask中为1的位的所有组合枚举出来。 enumerateM 阅读全文
posted @ 2019-04-08 12:35 wjcdx 阅读(315) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/Sf0owQxWzxacVvykJZ5oTQ 介绍TransferSizes的实现。 ​​ 1. 基本定义 从min到max的闭合区间:[min, max] 判断条件: a. min和max为2的幂; b. min <= max; c. min和 阅读全文
posted @ 2019-04-08 12:34 wjcdx 阅读(372) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/KsZqe9W_DM6W6JecK_irvA 介绍AddressSet.enumerateBits方法的实现,主要是x & (-x)的意义。 ​​ 1. 基本定义 enumerateBits的意思就是用于枚举比特,或者说罗列比特,即把mask中为 阅读全文
posted @ 2019-04-08 12:34 wjcdx 阅读(222) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/qqL2XWqAhVcnGSxs6kxhLg 介绍IdRange的实现。 ​​ 1. 基本定义 A non-empty half-open range; [start, end) 非空,半闭合区间。 限定条件如下: a. start >= 0; 阅读全文
posted @ 2019-04-05 23:07 wjcdx 阅读(311) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/j1M9ZOTtqvc1Fv9T6dy9kg 以tilelink下的Buffer为例,介绍LazyModule如何组织内部的节点和模块。 1. TileLink Channels ​​ 参考TileLink总线的规范文档。 2. BufferPa 阅读全文
posted @ 2019-03-29 21:59 wjcdx 阅读(538) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg 介绍LazyModule和Node构造方法的执行过程,即实例化过程。 1. NullIntSource 以NullIntSource为例,将其作为顶层的LazyModule考虑: ​​ 2. Lazy 阅读全文
posted @ 2019-03-10 09:56 wjcdx 阅读(1314) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw 介绍LazyModule和Node构造方法的执行过程,即实例化过程。 1. NullIntSource 以NullIntSource为例,将其作为顶层的LazyModule考虑: ​​ 2. 实例化过 阅读全文
posted @ 2019-03-09 16:23 wjcdx 阅读(873) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/gDbUto1qd7uWbpnxovr5pg 介绍LazyModuleImpLike类的实现。 1. wrapper LazyModuleImpLike是LazyModule的内部实现,LazyModule则是LazyModuleImpLike的 阅读全文
posted @ 2019-03-09 16:23 wjcdx 阅读(572) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ 介绍LazyModule的实现。 ​​ 1. children LazyModule内部的LazyModule,说明LazyModule是可以嵌套的。 在如下位置添加: ​​ 2. nodes Laz 阅读全文
posted @ 2019-03-09 16:22 wjcdx 阅读(894) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/W1cS9sgwLFjOOm86d05NIA 介绍各类型节点如何确定星型绑定所包含的连接数。 1. 定义 ​​ resoveStar方法以抽象方法的形式定义于抽象类MixedNode中,用于确定星型绑定所包含的连接数。 其参数说明如下: a. i 阅读全文
posted @ 2019-03-05 23:34 wjcdx 阅读(433) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA 介绍MixedNode的实现。 1. 类定义 ​​ ​​ 2. inner/outer inner side/outer side of the node. ​​ 3. inward/outward 阅读全文
posted @ 2019-03-04 21:37 wjcdx 阅读(423) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ 简单调试ValName实现; 1. 使用 ​​ Desugar之后如下: ​​ 这里补上了省略掉的implicit parameter,如下: ​​ 2. 实现 ValName的实现如下: ​​ Va 阅读全文
posted @ 2019-03-03 16:25 wjcdx 阅读(396) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/DVcA2UixnB_6vgI3SjZGyQ 调试wirePrefix方法。 1. 实现 wirePrefix用于调整名称格式,其实现如下: ​​ 使用正则表达式,把名称从驼峰格式如“CamelCaseNameStyle”变为Linux格式如“c 阅读全文
posted @ 2019-03-03 16:24 wjcdx 阅读(260) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/eOgNLi_MJ8HJOpepGaaW8Q 简单介绍BaseNode的实现。 ​​ 1. You cannot create a node outside a LazyModule ​​ LazyModule.scope在LazyModule对 阅读全文
posted @ 2019-03-03 16:22 wjcdx 阅读(416) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页