随笔分类 - Scala
摘要:https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA 简单介绍PrefixSum的实现。 1. 基本介绍 把一个序列从前向后逐个执行迭代(assocOp),每针对一个元素执行一遍迭代,针对一整行执行一次迭代(layerOp)。 2. Pref
阅读全文
摘要:https://mp.weixin.qq.com/s/CUnrpyQN5LRBR5bxC5u86A 简单介绍MultiWidthFifo的实现。 1. 基本介绍 实现一个输入宽度为inW,输出宽度为outW,可存n个outW宽度元素的FIFO。 a. 如果inW == outW,直接使用队列(
阅读全文
摘要:https://mp.weixin.qq.com/s/_aJqf1cFJDK5RVRBhxTWOw 介绍MaskGen的实现。 1. 基本介绍 给定总线宽度beatBytes,根据访问的地址(address)和访问的字节数(bytes = 2^lgSize),生成访问字节的掩码。 2. 实现
阅读全文
摘要:https://mp.weixin.qq.com/s/kf4FvAFye_bRdT49Yow7Hg 简单介绍Misc中各个辅助方法的用途和实现。 1. ParameterizedBundle 包含一个隐式参数的Bundle。 2. DecoupledHelper rvs:Ready
阅读全文
摘要:https://mp.weixin.qq.com/s/yO_9Ec3S5-AosRVLpsBgOg 简单介绍基于通道位置的队列(LanePositionedQueue)的实现。 1. LanePositionedDecoupledIO 包含多个lane的ReadyValid接口,其中:
阅读全文
摘要:https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g 介绍IDPool的实现。 1. 基本介绍 实现从ID池中分配和释放ID的功能。 2. 实现 1) numIds & idWidth numIds为ID池中ID的个数;idWidth为表示这
阅读全文
摘要:https://mp.weixin.qq.com/s/5hNM4yeQjaLvAJzgMG9PGQ 介绍HeterogeneousBag的实现。 1. 基本介绍 一个口袋(bag),把元素们(elts)装进去。 2. 实现 a. apply(x):取第x个元素; b. length:元素的个数
阅读全文
摘要:https://mp.weixin.qq.com/s/vf0PfjbxQ3Ywjk6tk85SfA 介绍GenericParameterizedBundle的实现。 1. 基本介绍 a. Bundle:继承自Bundle,自定义的数据类型; a. 参数化:类型化的参数为T params; b.
阅读全文
摘要:https://mp.weixin.qq.com/s/QoP9Gbm9hUQ4xsjJQ0pZ1Q 简单介绍Frequency的实现。 一个实例: 1. 基本介绍 每一个时钟周期,随机从列表(dist)中选择一个输出。 要求条件: a. 列表dist不为空; b. dist中freq的总
阅读全文
摘要:https://mp.weixin.qq.com/s/yato1PrnHe517J8twgZFOg 介绍ECC(Error Correcting Code/Error Checking and Correcting)的实现框架。不涉及编码的具体实现细节。 1. 码:Code 所有编码(如
阅读全文
摘要:https://mp.weixin.qq.com/s/q7R2Dn9p9cch_ABN4raReQ 介绍几种计数器的实现,以及其中的一点小细节。 1. ZCounter a. value初始值为0; b. 使用inc构建递增计数逻辑; c. wrap: 如果value增加到n-1,则返回
阅读全文
摘要:https://mp.weixin.qq.com/s/ohBVNAXZUA538qSxfBGMKA 简单介绍Broadcaster的实现。 1. Broadcaster 广播即是把输入口的输入转发到每个输出口输出。 Takes in data on one decoupled interfac
阅读全文
摘要:https://mp.weixin.qq.com/s/6McbqOKM4fu4J5vdpZvxKw 简单介绍异步队列(AsyncQueue)的实现。 0. 异步队列 异步队列的两端分属不同的时钟域,拥有各自的复位逻辑。 异步队列用于存值的一端为上游端(source),用于取值的一端为下游端(s
阅读全文
摘要:https://mp.weixin.qq.com/s/7C8ZmPpwAqFqyKjL9K40Fg 介绍util中定义的注解(Annotations)。 1. Annotation 注解提供一些信息,供后续阶段使用。 之前在使用chisel生成verilog的时候,会同时生成后缀为".anno
阅读全文
摘要:https://mp.weixin.qq.com/s/UYVSO3XFJmhe5bUD_XbMLg 先介绍如何使用AddressAdjuster,然后分析UI参数的生成及使用。 1. AddressAdjuster的使用 a. 创建AddressAdjuster实例 注意usage()方
阅读全文
摘要:https://mp.weixin.qq.com/s/X0s5CWN84GEiwpNR7tiRgA 基于AddressAdjuster介绍LazyModule的实现。 参考链接:https://github.com/freechipsproject/rocket-chip/blob/master/s
阅读全文
摘要:https://mp.weixin.qq.com/s/UHGq74sEd9mcG5Q3f-g3mA 介绍AddressDecoder的实现。 1. 基本定义 每个Port包含多个地址集合(Seq[AddressSet]),需要确定输入的地址是属于哪一个Port。 AddressDecod
阅读全文
摘要:https://mp.weixin.qq.com/s/ZsEVt1GslL7ufJdJlgpfNQ 介绍AddressSet的实现。 1. 基本定义 使用base/mask定义的一个地址集合,之所以用集合(Set)而不是范围(Range),因为范围一般情况下是指一个连续的范围,而base
阅读全文
摘要:https://mp.weixin.qq.com/s/s3hr5JJX2_pwNgdu8WqV0Q 介绍enumerateMask的实现。(仅供理解,非严谨证明) 1. 基本定义 enumerateMask的意思是枚举掩码。其功能是把mask中为1的位的所有组合枚举出来。 enumerateM
阅读全文
摘要:https://mp.weixin.qq.com/s/Sf0owQxWzxacVvykJZ5oTQ 介绍TransferSizes的实现。 1. 基本定义 从min到max的闭合区间:[min, max] 判断条件: a. min和max为2的幂; b. min <= max; c. min和
阅读全文

浙公网安备 33010602011771号