Chisel作为领域专用语言(DSL),用于构建硬件模型。待硬件模型建立后,再基于模型进行仿真、验证,以及转换。硬件模型可以转换为firrtl,也可以转换为verilog。
 
接下来介绍Chisel如何构建硬件模型。
 
 
1. Command
 
Command定义用于构建硬件模型的命令。
 
命令可以分为两类:用于定义数据类型的命令,用于定义逻辑的命令。
 
用于定义数据的命令,称为Definition。
用于定义逻辑的命令,如下:
 
可以看到定义选择逻辑的命令:When/Alt/Otherwise;
还有数据之间连接的命令:Connect/BulkConnect;
 
软件程序中的逻辑结构有:顺序、选择、循环,三种;
而硬件中的逻辑结构只有:顺序、选择,两种;
 
硬件中的循环结构通过时钟实现,每个时钟可执行一次循环。但这不是物理上的硬件逻辑,而是建立在最基础的顺序、选择硬件逻辑之上,再基于时间而实现的逻辑。
 
所以硬件模型中,只需要顺序(基于连接)、选择(when/alt/otherwise)逻辑即可。
 
 
2. Definition
 
 
Definition用于定义数据,包括Wire/Reg/Mem等。
 
3. DefPrim
 
Prim是Primitive的缩写,意为原语。
 
PrimOp定义了各种原语操作:
 
DefPrim主要用于定义原语操作,但同时也定义原语操作产生的数据变量,所以DefPrim继承自Definition,而不是直接继承自Command。
 
4. Component
 
 
Component定义硬件模型中的组成部分,以模块为基本单位。BlockBox是一种特殊的模块。
 
5. Circuit
 
case class Circuit(name: String, components: Seq[Component], annotations: Seq[ChiselAnnotation] = Seq.empty)
 
Circuit包含一系列的Component,可以视为Top Module。
 
 

Chisel3 - model - Hardware Model的更多相关文章

  1. asp.net MVC中的@model与Model

    asp.net MVC中的@model与Model https://blog.csdn.net/ydm19891101/article/details/44301201 在MVC的实际使用中,我们经常 ...

  2. MVC中Model和model的区别和用户

    MVC中Model和model的区别,它们应该怎么用呢? 使用@model关键字可以定义一个Action里所对应的一个模型(经常可以叫他实体类). MVC的第一个字母M是Model,承载着View层和 ...

  3. 架构-层-Model:Model

    ylbtech-架构-层-Model:Model 1.返回顶部 1. Model,意思是模特儿,模特儿是英文“model”的音译.模特一般来说要五官端正,身材良好,有气质,展示能力强,另外身高要具备一 ...

  4. language model —— basic model 语言模型之基础模型

    一.发展 起源:统计语言模型起源于 Ponte 和 Croft 在 1998年的 SIGIR上发表的论文 应用:语言模型的应用很多: corsslingual retrieval distribute ...

  5. asp.net mvc4中model与Model的区别

    @model模型定义 使用@model关键字可以定义一个Action里所对应的一个模型(经常可以叫他实体类), 其实是对动态变量进行实例化,这样就可以直接在cshtml文件中调用“Model”变量. ...

  6. C# json转model 以及model转json

    1.json转model TestModel tm = new TestModel(); JavaScriptSerializer js = new JavaScriptSerializer();tm ...

  7. machine learning model(algorithm model) .vs. statistical model

    https://www.analyticsvidhya.com/blog/2015/07/difference-machine-learning-statistical-modeling/ http: ...

  8. SharePoint Add-in Model (App Model) 介绍 – 概念、托管方式、开发语言

    SharePoint Add-in Model 是自 2013 版本以来引入的新的扩展性开发模型, SharePoint 开发者可以利用这种新模型来实现往常利用场解决方案 (Farm Solution ...

  9. keras 学习笔记(一) ——— model.fit & model.fit_generator

    from keras.preprocessing.image import load_img, img_to_array a = load_img('1.jpg') b = img_to_array( ...

随机推荐

  1. 服务器3C直连网络好呢还是3C精品网络更好呢?

    3C直连网络:通过用自有AS号与中国电信CTcc,中国联通CUcc,中国移动CMcc企业网进行直接接驳,提供对大陆方向有更高要求的网络接入服务. 简称:国内3c直连. 3C精品专线网:在3C直连基础上 ...

  2. 简单谈谈Spring的IoC

    一.前言   这几天正在复习Spring的相关内容,同时想要对Spring的实现原理做一些深入的研究.今天看了看Spring中IoC的实现,找到了一篇非常详细的博客,研究了一个下午,看完之后唯一的感受 ...

  3. 一文教你快速修改ubuntu终端显示的主机名和用户名

    为了让终端的显示更加简洁,清爽,改掉显示的用户名和主机名,改成你喜欢的名字. 创作不易,如果本文帮到了您: 如果本文帮到了您,请帮忙点个赞

  4. 设计模式GOF23之工厂模式01

    简单工厂模式和工厂方法模式 工厂模式核心:分工 简单工厂模式不符合OCP(Open-Closed Princinple)原则,扩展时需要更改原代码 工厂方法模式增加了类复杂度代码复杂度等,所以一般使用 ...

  5. SpringMvc 你该知道如何在HandlerExceptionResolver中获取Model

    在项目开发中,我们通常通过参数的形式注入Model对象,如: @RequestMapping("/demo") public String demo(Model model) { ...

  6. java ->网络通信协议(UDP协议、TCP协议)

    网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规 ...

  7. 在IntelliJ IDEA中创建和运行java/scala/spark程序

    本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...

  8. Antd 表格数据分页展示

    分页组件代码 render(){ const {total,size,currenPage} = this.state // 参数分别为数据总条数.每页数据条数.当前页页码 return ( // 渲 ...

  9. 如何理解golang中的nil

    nil的奇怪行为 刚接触golang时,发现nil在不同的上下文,行为表现是不同的,并且和其他语言中的表现,也不大相同 实例1:输入true, true, false,不符合传递性 func main ...

  10. webpack-dev-server简记

    webpack -v 3.4.1 npm -v 3.10.10 /////////////////////////////////////// webpack的webpack-dev-server可以 ...