您当前的位置: 首页 > 

耐心的小黑

暂无认证

  • 1浏览

    0关注

    323博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

chisel的初级参数化(verilog也可以)

耐心的小黑 发布时间:2021-07-15 21:07:07 ,浏览量:1

0 简介

这篇文章讲chisel的参数化。chisel的参数化东西是比较多的,打算分两次讲,将其分为初级参数化手段以及高级参数化手段,一次初级参数化,然后两篇高级参数化。

在这里插入图片描述

初级参数化比较简单,但是作为后续内容的理解,还是需要讲一下。其中部分内容直接引用自《Digital Design With Chisel》。

初级参数化有两种手段:采用类构造函数的参数化,以及采用类模板的参数化。为什么叫初级参数化?因为其背后的思想和Verilog 使用 parameter传递参数无区别,都是给每个module传入参数,再例化module即可。

一、基于类构造函数的参数化

原理是采用scala的构造函数。如下面的代码。scala的构造函数和类声明是一体的。比如声明一个参数n。

在这里插入图片描述

在例化的时候直接代入参数即可。

在这里插入图片描述

二、基于类模板的参数化

scala作为面向对象的语言,和c++一样有类模板。一些复杂的参数,比如类型都不确定可以直接使用类模板。

在这里插入图片描述

如上面所示采用类模板的参数化。模块存在两个参数,dt和n。其中n确定是int, 但是dt的类型需要参数化。这时候就需要用到类模板。

NocRouter是一个类模板,存在一个模板参数T。T可以是任意的data类型比如int, double什么的。[T

关注
打赏
1640088279
查看更多评论
立即登录/注册

微信扫码登录

0.0369s