随笔分类 -  Scala

摘要:https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA 简单介绍PrefixSum的实现。 ​​ 1. 基本介绍 ​​ 把一个序列从前向后逐个执行迭代(assocOp),每针对一个元素执行一遍迭代,针对一整行执行一次迭代(layerOp)。 2. Pref 阅读全文
posted @ 2019-06-08 23:51 wjcdx 阅读(179) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/CUnrpyQN5LRBR5bxC5u86A 简单介绍MultiWidthFifo的实现。 ​​ 1. 基本介绍 实现一个输入宽度为inW,输出宽度为outW,可存n个outW宽度元素的FIFO。 a. 如果inW == outW,直接使用队列( 阅读全文
posted @ 2019-06-07 23:17 wjcdx 阅读(259) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/_aJqf1cFJDK5RVRBhxTWOw 介绍MaskGen的实现。 ​​ 1. 基本介绍 给定总线宽度beatBytes,根据访问的地址(address)和访问的字节数(bytes = 2^lgSize),生成访问字节的掩码。 2. 实现 阅读全文
posted @ 2019-05-30 21:33 wjcdx 阅读(450) 评论(5) 推荐(0)
摘要:https://mp.weixin.qq.com/s/kf4FvAFye_bRdT49Yow7Hg 简单介绍Misc中各个辅助方法的用途和实现。 ​​ 1. ParameterizedBundle ​​ 包含一个隐式参数的Bundle。 2. DecoupledHelper ​​ rvs:Ready 阅读全文
posted @ 2019-05-30 21:32 wjcdx 阅读(331) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/yO_9Ec3S5-AosRVLpsBgOg 简单介绍基于通道位置的队列(LanePositionedQueue)的实现。 ​​ 1. LanePositionedDecoupledIO ​​ 包含多个lane的ReadyValid接口,其中: 阅读全文
posted @ 2019-05-28 22:23 wjcdx 阅读(400) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g 介绍IDPool的实现。 ​​ 1. 基本介绍 实现从ID池中分配和释放ID的功能。 2. 实现 1) numIds & idWidth ​​ numIds为ID池中ID的个数;idWidth为表示这 阅读全文
posted @ 2019-05-28 22:22 wjcdx 阅读(292) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/5hNM4yeQjaLvAJzgMG9PGQ 介绍HeterogeneousBag的实现。 ​​ 1. 基本介绍 一个口袋(bag),把元素们(elts)装进去。 2. 实现 a. apply(x):取第x个元素; b. length:元素的个数 阅读全文
posted @ 2019-05-27 22:06 wjcdx 阅读(278) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/vf0PfjbxQ3Ywjk6tk85SfA 介绍GenericParameterizedBundle的实现。 ​​ 1. 基本介绍 a. Bundle:继承自Bundle,自定义的数据类型; a. 参数化:类型化的参数为T params; b. 阅读全文
posted @ 2019-05-27 22:05 wjcdx 阅读(364) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/QoP9Gbm9hUQ4xsjJQ0pZ1Q 简单介绍Frequency的实现。 ​​ 一个实例: ​​ 1. 基本介绍 每一个时钟周期,随机从列表(dist)中选择一个输出。 要求条件: a. 列表dist不为空; b. dist中freq的总 阅读全文
posted @ 2019-05-27 22:04 wjcdx 阅读(225) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/yato1PrnHe517J8twgZFOg 介绍ECC(Error Correcting Code/Error Checking and Correcting)的实现框架。不涉及编码的具体实现细节。 ​​ 1. 码:Code ​​ 所有编码(如 阅读全文
posted @ 2019-05-26 11:06 wjcdx 阅读(377) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/q7R2Dn9p9cch_ABN4raReQ 介绍几种计数器的实现,以及其中的一点小细节。 ​​ 1. ZCounter ​​ a. value初始值为0; b. 使用inc构建递增计数逻辑; c. wrap: 如果value增加到n-1,则返回 阅读全文
posted @ 2019-05-25 00:08 wjcdx 阅读(263) 评论(0) 推荐(0)
摘要:https://mp.weixin.qq.com/s/ohBVNAXZUA538qSxfBGMKA 简单介绍Broadcaster的实现。 ​​ 1. Broadcaster 广播即是把输入口的输入转发到每个输出口输出。 Takes in data on one decoupled interfac 阅读全文
posted @ 2019-05-24 11:21 wjcdx 阅读(184) 评论(0) 推荐(0)
摘要: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)