![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
riscv
学习笔记
Frederic_Bala
这个作者很懒,什么都没留下…
展开
-
chisel中=和:=的区别
学了chisel有一段时间了,最近发现一些基础的概念还是不行不清楚,绝了。。。。码一下供参考 在Chisel里,所有对象都应该由val类型的变量来引用,因为硬件电路的不可变性。因此,一个变量一旦初始化时绑定了一个对象,就不能再发生更改。但是,引用的对象很可能需要被重新赋值。例如,输出端口在定义时使用了“=”与端口变量名进行了绑定,那等到驱动该端口时,就需要通过变量名来进行赋值操作,更新数据。很显然,此时“=”已经不可用了,因为变量在声明的时候不是var类型。即使是var类型,这也只是让变量引用新的对象,原创 2020-09-03 09:38:52 · 1391 阅读 · 1 评论 -
解决:使用idea编写chisel代码时import导入变红
原创 2020-08-13 17:18:47 · 501 阅读 · 0 评论 -
chipyard仿真出错1
使用chipyard对gemmini的官方实例进行仿真,使用仿真器,出错如下:riscv64-unknown-elf-gcc: Command not found经过多方查询,锁定问题是出在工具链的路径上,网上有种解决方法是将riscv64-unknown-elf-gcc文件拷贝到根目录的/bin目录下。这样虽然可以解决命令找不到的问题,但后边会出其他问题。所以最好的办法就是修改环境变量,指定路径。export PATH=$RISCV/bin:$PATH在.bashrc文件里找到这句话原创 2020-08-08 11:06:49 · 750 阅读 · 0 评论 -
chipyard的toolchain安装出错2
接上步,又出错了。。。。RPC failed;curl 56 GnuTLS recv eroor (-54) : Error in the pull function解决方法如下:就是扩大一下缓存了。运行一遍,好起来了!原创 2020-08-07 16:54:53 · 371 阅读 · 0 评论 -
chipyard的toolchain安装出错1
chipyard安装步骤见官网https://chipyard.readthedocs.io/en/latest/Simulation/Software-RTL-Simulation.html#synopsys-vcs-license-required我是在执行这条命令时出了错:./scripts/build-toolchains.sh riscv-tools # for a normal risc-v toolchain错误见图解决方法如下:在qemu/roms/edk2/Cr原创 2020-08-07 15:32:54 · 1027 阅读 · 1 评论 -
idea导入chisel文件后点击变量无法跳转
最近用idea学习chisel文件,按住ctrl后单击就是无法跳转。网上查到好多方法,不是很好使,可能大家的原因不太一样,我的解决方法如下,供参考:点击工具栏右侧,add configuration。然后点击templates。然后点击Gradle,在右侧的gradle project处添加自己的工作路径。点apply,就搞定了。注意,我已经安装了scala和sbt,检查一下自己的sbt装好没。装好了的情况如上图。...原创 2020-08-05 17:54:45 · 432 阅读 · 0 评论 -
chisel学习笔记2
第一个Chisel模块1、直接上代码// Chisel代码:定义一个模块class Passthrough extends Module { val io = IO(new Bundle { val in = Input(UInt(4.W)) val out = Output(UInt(4.W)) }) io.out := io.in}以上代码定义了一个名字叫做Passthrough的ChiselModule,它有一个4比特的输入,名字叫做in,还有一个4比特.原创 2020-07-29 09:52:21 · 282 阅读 · 0 评论 -
chisel学习笔记1
chisel是在scala的基础上建立起来的,初学chisel可能有点摸不着头脑,建议去菜鸟学学scala先。码一下scala的笔记,贼适合入门。Scala是一个面向对象的编程语言,了解这一点很重要,这也是Scala和Chisel的一个很大的优势。变量是对象。 运用val声明的常量也是对象。 甚至literal也是对象(例如,1,2,3,字符串等)。 函数本身也是对象。这之后会详细说明。 对象(Object)是类(class)的实例。 事实上,面向对象中的对象(object)在Scala.原创 2020-07-28 16:23:43 · 341 阅读 · 0 评论 -
RISCV-RoCC简介
RiscV作为一个新的开源指令集架构,由Aspire Lab开放,具有简单开放的特点,主要用于教育研究.一个最主要的特点是其ISA通过支持自定义指令的方式,支持自定义硬件加速器,用于专用领域的计算加速设计。本文简单介绍RiscV的RoCC,以及其与RiscV处理器核通信的接口RoCC Interface。RiscV自定义指令RiscV ISA定义了四种自定义指令用于与协处理器进行交互。customX rd, rs1, rs2, funct标准自定义指令格式如下:其中rs1原创 2020-07-24 16:08:45 · 5297 阅读 · 0 评论 -
chisel全套学习
win10环境1、安装conda,参照:https://www.jianshu.com/p/920a6e18cfd6注意,清华源已经停止了服务,使用conda config --remove-key channels换回默认源命令窗口显示“done”表示完成。2、使用anaconda安装Jupyter Notebook,参照:https://www.jianshu.com/p/91365f343585/命令窗口显示“done”表示完成。3、找到chisel教程开始搬砖,参照:htt.原创 2020-07-22 10:44:29 · 587 阅读 · 0 评论