版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.其他议题一、重命名模块名称二、命名规则三、重命名模块内信号名称四、参数化的Bundle五、FixedPoint六、assert七、总结目录
2一、重命名模块名称
3一、重命名模块名称Chisel生成Verilog的模块名默认使用Chisel中的类名。通过重写desiredName方法重命名生成Verilog的模块名。模块和黑盒都适用。
4一、重命名模块名称例:ChiselVerilogclassCoffeeextendsBlackBox{
valio=IO(newBundle{
valI=Input(UInt(32.W))
valO=Output(UInt(32.W))
})
overridedefdesiredName="Tea"
}
classSaltextendsModule{
valio=IO(newBundle{})
valdrink=Module(newCoffee)
overridedefdesiredName="SaltDrink"
}moduleSaltDrink(
inputclock,
inputreset
);
wire[31:0]drink_I;
wire[31:0]drink_O;
Teadrink(
.I(drink_I),
.O(drink_O)
);
assigndrink_I=32'h0;
endmodule
5二、命名规则
6二、命名规则Chisel难以可靠地捕获信号名称是一个历史性问题,主要是因为Chisel依靠反射来查找名称。Chisel3.4引入了一个Scala编译器插件,它能可靠地捕获信号名称。插件的作用:
①给中间变量名加前缀
②函数调用或者作用域里面定义的信号名生成 Verilog时使用Chisel变量名
7三、重命名模块内信号名称
8三、重命名模块内信号名称chisel3.experimental包里的prefix和noPrefix可以用来增加自定义前缀和去除前缀: prefix用来增加自定义前缀,但是会保留前缀中的左侧变量名; noPrefix可以去掉前缀中的左侧变量名;如果只想生成自定义的前缀,先使用prefix加自定义前缀,再使用noPrefix去除前缀中的左侧变量名。注:如果先使用noPrefix再使用prefix只能去掉前缀中的左侧变量名,不会添加自定义前缀名。3.1前缀
9三、重命名模块内信号名称如果想更改生成Verilog的信号名称,可以使用suggestName方法。如果在生成中间变量过程中使用suggestName,会生成相应的前缀。如果想去掉该前缀,使用noPrefix去除。
suggestName添加的名字可能不会出现在Verilog中,比如该信号被优化掉。三、重命名模块内信号名称3.2suggestName
10重命名模块内信号名称
forceName是chisel3.util.experimental里的单例对象,它可以更改信号名、端口名、实例名。用法是foceName(信号名/端口名/实例名,字符串)注:使用时需要importchisel3.util.experimental.forceName三、重命名模块内信号名称3.3forceName
11四、参数化的Bundle
12当一个Bundle类的对象用于创建线网、IO等操作时,它并不是把自己作为参数,而是交出自己的一个复制对象,也就是说编译器需要知道如何来创建当前Bundle对象的复制对象。Chisel提供了一个内部的API函数cloneType,任何继承自Data的Chisel对象,要复制自身时,都是由cloneType负责返回该对象的复制对象。四、参数化的Bundle
13当自定义的Bundle的主构造方法没有参数时,Chisel会自动推断出如何构造Bundle对象的复制。但是,如果自定义的Bundle带有参数列表,那么Chisel就可能无法推断了。此时需要自己重写Bundle类的cloneType方法,其形式如下:overridedefcloneType=(newCustomBundle(arguments)).asInstanceOf[this.type]四、参数化的Bundle
14五、FixedPoint
15五、FixedPoint在设计电路中有时需要用到定点数,在chisel3.util.experimental包里定义了FixedPoint密封类和伴生对象。构造FixedPoint需要两个参数:
FixedPoint(width:Width,binaryPoint:BinaryPoint) width:定点数的位宽 binaryPoint:尾数位位宽
FixedPoint类也定义了很多方法,包括算术运算、位操作、比较操作等,详情见API文档和源码。
16六、assert
17六、assert
有时需要在构建电路时限制参数条件,或者对电路内信号进行断言,如果信号不满足断言的条件则报错,实现上述功能可以使用chisel3包中的assert方法。assert方法可以接受一个参数、两个参数、多个参数。一个参数:只有判断条件,可以是Bool类型或者是Boolean类型,也就是说assert同时支持scala和chisel的逻辑判断。两个参数:判断条件和字符串,如果判断条件不成立,报错信息会输出这个字符串。多个参数:判断条件、字符串和信号名,当判断条件是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职铁道运输服务(铁路客运服务)试题及答案
- 2025年高职新能源汽车结构原理(汽车构造分析)试题及答案
- 2025年中职(广告产品销售)宣传效果阶段测试卷
- 2025年高职生态保护运营应用(应用技术)试题及答案
- 2025年高职(大数据与会计)财务共享服务期末测试题及答案
- 2025年大学大三(财政学)税收筹划阶段测试题及答案
- 2025年高职(西餐工艺)牛排制作试题及答案
- 2025年中职伦理学(道德理论)试题及答案
- 2025年中职无人机应用技术(无人机操作)技能测试题
- 2026年北京戏曲艺术职业学院单招综合素质考试模拟试题带答案解析
- 2024年征兵心理测试题目
- 福建省三明市2024-2025学年七年级上学期期末语文试题
- 输电线路安全课件
- 病区8S管理成果汇报
- 河南省郑州市中原区2024-2025学年七年级上学期期末考试语文试题
- 服装店铺的运营管理
- 土石方工程施工中的成本控制措施
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 办公区精装修工程施工方案
- 竣工报告范文
- 广告宣传品实施供货方案
评论
0/150
提交评论