‘壹’ blackbox使用方法
当前SoC设计很多时候以IP为基本的building block,很多时候SoC设计前端部分的工作在于多个ip的缝合和管理,这个时候就可以使用chisel内建的black box模型来例化,以及进行简单的测试。
blackbox本质上只是一个文本生成器,用于例化ip模块,与verilog例化模块类似。以下是一个chisel调用ip的例子。
需要关注的是:
假如verilog中的变量名过于繁多,比如存在"op0,op1,op2...op10"这么多同类型变量,是否也要像上述方式一样,手动地写一串的端口名?
其实不需要,用object的apply方法,重新将多个变量封装成一个数组,这样又可以很方便地调用模块了。通过重新封装,可以得到形式上更加统一和简洁的接口形式。
以下是最常见的例化方式
注意对应的blackbox要放在/src/main/resource目录下,没有目录则新建一个。
另外,假如不存在对应的resource,则去掉上述的 HasBlackBoxResource
这时候的例化已经与正常的chisel模块调用方法一致了
从实际操作来看,在chisel中例化模块,似乎和在verilog中例化的工作量差不多,都得完整地声明port列表。
但是实际上,blackbox模块与chisel内建的mole模块是等同的。chisel的主要魅力并不是简化了port的声明方式,而是在于,将模块导入之后就有跟mole一样的地位,就可以同样地采用更加漂亮的参数化管理方式,更简洁的模块例化方式,工厂化的生产方法以及函数式的模块调用方法等。导入blackbox至chisel中是为了更好地利用这些特性,以减少一些重复劳动。
‘贰’ 什么是RISC架构
RISC直接意思就是精简指令集结构CPU。
这个东西太深奥了,只能复制了,试着自己写点也删除了。
指令集也可以理解为软件和硬件之间沟通的桥梁,不同的厂家可能会用不同的方法来实现相同的指令集,从而让遵循相同指令集的软件可以无需修改即可运行。比如我们熟知的Intel和AMD都实现了x86指令集,这基本上统治了PC的市场。
Krste教授决定带领团队重新开发一个完全开放的、标准的、能够支持各种应用的新指令集,他也得到了RISC的发明者之一,Dave Patterson教授的大力支持。从2010年夏天开始,大约花了四年的时间,这个团队设计和开发了一套完整的新的指令集,同时也包含了移植好的编译器、工具链、仿真器,并经过数次流片验证。为了能够加快开发的效率,以便能够快速的评估和修改设计以及提高可复用性,Chisel作为一种新的硬件构建语言也被开发了出来。简言之,你可以用scala这种函数式编程语言去设计硬件,并最终能够生成传统的Verilog HDL用于ASIC/FPGA,或者生成C++用于仿真。
这个新的指令集叫做RISC-V,“V”包含两层意思,一是这是Berkeley从RISC I开始设计的第五代指令集架构,二是它代表了变化(variation)和向量(vectors)。
‘叁’ 闪电chisel是桶轴吗
是。
桶轴车架是一种专门为了安装桶轴而开发的专用车架,现今高端山地车市场,都是安装的桶轴,作为轮组的旋转主体,这种为了桶轴结构。优化的车身形式,也被称为桶轴车架,与普通的车架,区别在于轴端的安装位置,是一体化的结构,不会因为快拆结构的失效,而出现轮组脱落的情况。