zoukankan      html  css  js  c++  java
  • Chisel3

     
     
    介绍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语言的函数式编程方法,而有了极大的提升。
     
     
  • 相关阅读:
    pip 提示import error,cannot import name locations
    Selenium 报错 提示“unable to find an ant file to run”
    python-unexpected content storage modification出错
    C++对象的动态建立与释放
    C++构造函数和析构函数
    C++类的访问控制关键字
    C++之namespace、bool
    C++ 学习笔记
    内存泄漏
    内存回收机制
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10232322.html
Copyright © 2011-2022 走看看