zoukankan      html  css  js  c++  java
  • Chisel3

     
    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。
     
     
  • 相关阅读:
    Python中os与sys两模块的区别
    单线程爬取图片
    linux下glances服务器监控工具
    python中的join()函数的用法
    python的exec、eval详解
    mongodb启动不了解决方法
    生产者和消费者(.net实现)
    IOS开发--第一阶段--导行(1)(基本概念)
    12.26 linux基本操作指令
    12.25
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10207634.html
Copyright © 2011-2022 走看看