Rocket - util - Annotations】的更多相关文章

https://mp.weixin.qq.com/s/7C8ZmPpwAqFqyKjL9K40Fg   介绍util中定义的注解(Annotations).   ​​   1. Annotation   注解提供一些信息,供后续阶段使用. 之前在使用chisel生成verilog的时候,会同时生成后缀为".anno.json"的文件,里面存放的即是注释信息.   2. SRAMAnnotation   ​​ 注释SRAM的信息,包括:地址宽度.名称.数据宽度.深度.描述信息.写掩码颗粒…
https://mp.weixin.qq.com/s/Z4JJhZ_jL1lqF1nf_orq9A   简单介绍Timer的实现.   ​​   1. 基本功能   实现定时器的功能.   2. Timer   实现一个静态装入的定时器: ​​ 1) initCount   定时器的初始值,静态配置,不可动态改变.   2) maxInfligh   定时器事件的种类.   3) io   ​​ a. start:某个定时器事件需要启动定时器,io.start.bits为这个定时器事件的ID:…
https://mp.weixin.qq.com/s/zCP7wPuxgQ-r94Tr6BV5iw   简单介绍Replacement的实现.   ​​   1. 基本介绍   用于实现Cache替换相关的功能. ​​ From: Cache Replacement Policies, Prof. Mikko H. Lipasti, University of Wisconsin-Madison, ECE/CS 752 Spring 2016   2. ReplacementPolicy   代…
https://mp.weixin.qq.com/s/gbR5fuDbE_nUFVxw-p4rsA   简单介绍ReduceOthers的实现.   ​​   1. 基本介绍   输入一组Bool元素,把其他位置元素逐个相与的结果,作为当前位置的值输出.   2. helper   helper实现ReduceOthers的核心功能: ​​   1) 输入参数   x是输入的一组Bool类型的元素.   2) 返回值   返回一个元组:(Seq[Bool], Bool) a. Seq[Bool]…
https://mp.weixin.qq.com/s/xyEq3DgYuf2QuNjssv8pkA   简单介绍Repeater的实现.   ​​   1. 基本功能   A Repeater passes it's input to it's output, unless repeat is asserted. When repeat is asserted, the Repeater copies the input and repeats it next cycle.   2. 实现  …
https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA   简单介绍PrefixSum的实现.   ​​   1. 基本介绍   ​​ 把一个序列从前向后逐个执行迭代(assocOp),每针对一个元素执行一遍迭代,针对一整行执行一次迭代(layerOp).   2. PrefixSum   ​​ a. layers:抽象方法,返回层数,等于layerOp执行的次数: b. idLayer: 默认的layerOp,即没有动作,把输入原样返回:   3.…
https://mp.weixin.qq.com/s/CUnrpyQN5LRBR5bxC5u86A   简单介绍MultiWidthFifo的实现.   ​​   1. 基本介绍   实现一个输入宽度为inW,输出宽度为outW,可存n个outW宽度元素的FIFO. a. 如果inW == outW,直接使用队列(Queue)实现: b. 如果inW > outW,则相当于每次输入多个元素,而输出只能有一个元素: c. 如果inW < outW,则相当于每次输出多个元素,而输入只能有一个元素:…
https://mp.weixin.qq.com/s/_aJqf1cFJDK5RVRBhxTWOw   介绍MaskGen的实现.   ​​   1. 基本介绍   给定总线宽度beatBytes,根据访问的地址(address)和访问的字节数(bytes = 2^lgSize),生成访问字节的掩码.   2. 实现   思路不复杂,写法很难懂.重构一下,提高可读性.   1) 首先忽略groupBy,清爽很多: ​​   2) 把addr_lo重命名为address,把lgSize重命名为si…
https://mp.weixin.qq.com/s/kf4FvAFye_bRdT49Yow7Hg   简单介绍Misc中各个辅助方法的用途和实现.   ​​   1. ParameterizedBundle   ​​ 包含一个隐式参数的Bundle.   2. DecoupledHelper   ​​ rvs:Ready/Valid们. a. fire():返回一个rvs是否全部为真的判断: b. fire(exclude, includes):从rvs中临时排除一个exclude,在临时增加…
https://mp.weixin.qq.com/s/yO_9Ec3S5-AosRVLpsBgOg   简单介绍基于通道位置的队列(LanePositionedQueue)的实现.   ​​   1. LanePositionedDecoupledIO   ​​ 包含多个lane的ReadyValid接口,其中: a. maxVliad & maxReady:valid和ready信号的数量: b. validBits1 & readyBits1:表示valid和ready的数量所需要的比…
https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g   介绍IDPool的实现.   ​​   1. 基本介绍   实现从ID池中分配和释放ID的功能.   2. 实现   1) numIds & idWidth   ​​ numIds为ID池中ID的个数:idWidth为表示这么多ID所需要的比特数:   2) io   ​​ alloc为从ID池中分配一个ID时所使用的接口,io.alloc.bits为返回的ID号: free为从ID池中释放一…
https://mp.weixin.qq.com/s/5hNM4yeQjaLvAJzgMG9PGQ   介绍HeterogeneousBag的实现.   ​​   1. 基本介绍   一个口袋(bag),把元素们(elts)装进去.   2. 实现   a. apply(x):取第x个元素: b. length:元素的个数: c. elements:把elts转换为(序号.元素)对: d. cloneType:克隆出来的为this.type,即HeterogeneousBag子类的类型: e.…
https://mp.weixin.qq.com/s/vf0PfjbxQ3Ywjk6tk85SfA   介绍GenericParameterizedBundle的实现.   ​​   1. 基本介绍   a. Bundle:继承自Bundle,自定义的数据类型: a. 参数化:类型化的参数为T params: b. 通用的:cloneType返回的this.type为子类的类型:   2. 实现   覆盖了一个cloneType()方法.该方法的实现如下: a. 获取当前对象的类:this.ge…
https://mp.weixin.qq.com/s/QoP9Gbm9hUQ4xsjJQ0pZ1Q   简单介绍Frequency的实现.   ​​   一个实例: ​​     1. 基本介绍   每一个时钟周期,随机从列表(dist)中选择一个输出.   要求条件: a. 列表dist不为空: b. dist中freq的总和为2的幂: ​​   2. 实现   a. 生成一个随机数   ​​   b. 生成if()语句   ​​ ​​   if (randVal < firstFreq) {…
https://mp.weixin.qq.com/s/yato1PrnHe517J8twgZFOg   介绍ECC(Error Correcting Code/Error Checking and Correcting)的实现框架.不涉及编码的具体实现细节.   ​​   1. 码:Code   ​​ 所有编码(如奇偶校验码.海明码)的抽象父类.   包含如下几个方面: a. 能否检错:canDetect: b. 能否纠错:canCorrect: c. width():输入为数据的宽度,输出为编…
https://mp.weixin.qq.com/s/q7R2Dn9p9cch_ABN4raReQ   介绍几种计数器的实现,以及其中的一点小细节.   ​​   1. ZCounter   ​​   a. value初始值为0: b. 使用inc构建递增计数逻辑: c. wrap: 如果value增加到n-1,则返回从0开始重新计数:如果n是2的幂,则不需要判断,一直加1即可.   创建ZCounter类的实例,只是创建了一个value寄存器: ​​   在调用其inc()方法时,才会生成计数…
https://mp.weixin.qq.com/s/ohBVNAXZUA538qSxfBGMKA   简单介绍Broadcaster的实现.   ​​   1. Broadcaster   广播即是把输入口的输入转发到每个输出口输出.   Takes in data on one decoupled interface and broadcasts it to N decoupled output interfaces.   2. io   ​​ a. in:输入口: b. out: n个输出…
https://mp.weixin.qq.com/s/6McbqOKM4fu4J5vdpZvxKw   简单介绍异步队列(AsyncQueue)的实现.   ​​ 0. 异步队列   异步队列的两端分属不同的时钟域,拥有各自的复位逻辑. 异步队列用于存值的一端为上游端(source),用于取值的一端为下游端(sink).   1. AsyncQueueParams   ​​ 异步队列的参数,包含如下几项: a. depth   队列深度,表示队列可以存储几个元素:   b. sync   表示流…
在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可以用简单的声明方式,通过编译器自动产生铺垫代码来实现工具库中各种复杂的类型.对象及方法函数的构建.虽然Def Macros可能具备超强的编程功能,但同时使用者也普遍认为它一直存有着一些严重的诟病:包括用法复杂.容易犯错.运算行为难以预测以及没用完善的集成开发环境工具(IDE)支持等.这些恶评主要是因…
原文地址:http://stackoverflow.com/questions/18189980/how-do-annotations-work-internally The first main distinction between kinds of annotation is whether they're used at compile time and then discarded (like @Override) or placed in the compiled class fil…
与其闭门造车,不如直接开动原装.进口.免费的法拉利. -- 作者说 不多说废话,直接上代码. ParamUtil ParamUtil.GetterUtil是Liferay最重要的帮助类 ParamUtil用途:获取PortletRequest的参数值,并作类型转换和判空处理(内部机制是通过GetterUtil) GetterUtil用途:对输入做类型转换.判空处理.赋予默认值(即期望的获取值为空时侯的初始值) ParamUtil的使用例子1: public void deleteIntervie…
报错信息大致如下所示: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303) at org.apache.catalina.startup.Bootstrap.main(Bootstr…
Hibernate annotation 多对多: 下面测试例子会自动生成一张表:card,这张是bank和user表的映射表.里头是bank_id和user_id两个组合字段. 如果想在这张映射表中加入额外的字段,那么hibernate似乎无法做到.因为这需要把多对多写成两个一对多的关系.事实上这样加额外字段到映射表,好像也是违反了DBMS的设计原则. hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"…
Hibernate annotation 一对一的两种实现: 1)幅表中有主表的主键ID做为引用 2)幅表的主键即为主表的ID hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" &qu…
Hibernate使用Annotations最简单例子: hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hib…
一.结构 二.Hibernate支持的UserTypes接口  UserType —You can transform values by interacting with the plain JDBC PreparedStatement (when storing data) and ResultSet (when loading data).By implementing this interface, you can also control how Hibernate caches a…
一.简介 1. 2. 3. 4. to override this default mapping. The JPA specification has a convenient shortcut annotation for this purpose, @Lob @Entity public class Item { @Lob protected byte[] image; @Lob protected String description; // ... } This maps the by…
最近大概读一点UCB发布时间Rocket处理器的源代码,的每个文件的源代码的功能有一定的一般理解,Mark一点点. Rocket是一家64bit标量处理器,5第一阶段管道,用途risc-v指令集.综合FPU,还有很多or1200没有功能,实例:无堵塞高速缓存.分支预测.返回地址堆栈.硬件页表填充.cache支持ECC.支持多核等. Rocket的源代码是使用Chisel编写的,Chisel是UCB公布的基于Scala的领域特定语言.能够在https://github.com/ucb-bar/ro…
1.错误描述 信息: MLog clients using java 1.4+ standard logging. 2014-7-12 19:29:20 com.mchange.v2.c3p0.C3P0Registry banner 信息: Initializing c3p0-0.9.2.1 [built 20-March-2013 10:47:27 +0000; debug? true; trace: 10] 2014-7-12 19:29:21 org.springframework.web…
错误信息 springboot + spring mvc 的maven项目,在tomcat启动的时候报错,错误信息如下: SEVERE: Unable to process Jar entry [javassist/util/proxy/SerializedProxy$1.class] from Jar [jar:file:/somr/path/WEB-INF/lib/javassist-3.20.0-GA.jar!/] for annotations java.io.EOFException…