标签:log else start its tor ros 操作 分享图片 other
介绍Chisel与Scala的不同与关联。
??
一. 层次高低
Chisel是使用Scala语言编写的具体代码。从抽象层次上看,Scala更高。
1. 语言与代码
Chisel是使用Scala语言编写的代码。
2. 语言与代码库
Chisel是使用Scala语言编写的代码库。
二. 范围大小
3. 通用语言与领域专用语言
Scala是一门通用语言,可用于各个领域编程。
Chisel使用Scala实现的领域专用语言(DSL),专门用于硬件建模使用。
三. 思维方式不同
4. 软件编程与硬件建模
Scala是一门软件编程语言,其使用基于软件编程思维;
Chisel是硬件模型构建语言,其使用基于硬件模型构建思维;
软件编程的最小单位为汇编指令;
硬件建模的最小单位为硬件模块;
软件编程基于指令执行;
硬件模型基于电磁传播;
四. Chisel:狭义与广义
5. 狭义的Chisel
狭义的Chisel是一个使用Scala语言实现的硬件模型构件库,其各个组成部分与硬件模型分别对应。
总结如下:
a. Chisel使用的UInt/SInt/Bool/Bits,描述硬件模型中使用的类型,最终落实到Wire/Reg上;
b. Chisel使用PrimOp,对应硬件模型中的各种原子操作,如加减乘除,移位等操作;
c. Chisel使用的":=",对应到硬件模型中的连接,把下游连接到上游,接收上游值的变化(电平变化);
d. Chisel使用when/elsewhen/otherwise,描述硬件模型中的选择逻辑;
所有的验证、转换工作都基于硬件模型进行。
6. 广义的Chisel
广义的Chisel,是一个硬件模型构建方法论(methodology)。
包含两个部分:
首先,实现一个硬件模型构件库,用于构建硬件模型;
其次,提高一个层次,使用Scala作为硬件模型生成器;
这个层次的提升极大的提高了硬件模型的构建效率。
硬件模型在Chisel中的叫法为:Hardware graph;
硬件模型生成器在Chisel中的叫法为电路生成器:Circuit generator;
电路生成器源于Verilog的generate。
由于Scala语言的函数式编程方法,而有了极大的提升。
Chisel3 - Chisel vs. Scala
标签:log else start its tor ros 操作 分享图片 other
原文地址:https://www.cnblogs.com/wjcdx/p/10232322.html