Chisel3 入门 (1)

Chisel3 入门(1)

文章目录

  • Chisel3 入门(1)
    • Chisel3 基本数据类型
      • 定义变量
      • 创建变量、常量
    • 布尔逻辑
    • 类型转换
    • Analog/BlackBox 类型

Chisel3 基本数据类型

chisel提供三种类型数据类型描述信号连接、组合逻辑、寄存器:

  • Bits: 可表示 一个bit 向量
  • UInt: 扩展自Bits, 表示 无符号整型
  • SInt: 扩展自*Bits, 表示 有符号整型

定义变量

  1. 定义变量类型
    • Bits([x:Int/string], [width:Int])
    • UInt([x:Int/string], [width:Int])
    • SInt([x:Int/string], [width:Int])
      如:
      Bits(8.W) 定义一个8-bit Bits类型, 类似于logic [7:0]
      UInt(16.W) 定义一个16-bit UInt类型, 类似于logic [15:0]
      SInt(32.W) 定义一个 32-bit SInt类型, 类似于logic [31:0]

创建变量、常量

  1. 创建变量
    val signal_a = Bits(8.W) 定义 8-bit Bits类型变量

  2. 创建常量

    • 常量可以通过使用Scala整数并将其转换为Chisel类型来定义:
      • 0.U 定义UInt 类型常量0
      • -3.S 定义SInt类型常量-3
    • 常量也可以通过使用Chisel宽度类型来定义宽度:
      • 3.U(4.W) 定义4-bit 常量 3
      • "ha".asUint(8.W) 8-bit 16进制数
      • "o12".asUInt(6.W) 6-bit 8进制数
      • "b1010".asUInt(8.W) 8-bit 2进制数

布尔逻辑

为了表示逻辑值,Chisel定义了Bool类型。Bool可以表示true或false值。

  • Bool([x:Boolean])
    • Bool()
    • true.B
    • false.B

类型转换

val sint = 3.S(4.W) //4-bit SInt
val uint = sint.asUInt  //cast SInt to UInt
uint.asSInt             // cast UInt to SInt

asUInt/asSInt 不接受参数, 因此进行信号连接时,chisel会自动填充或截取。

val bool: Bool = false.B        // always-low wire
val clock = bool.asClock        // always-low clockclock.asUInt                    // convert clock to UInt (width 1)
clock.asUInt.asBool             // convert clock to Bool (Chisel 3.2+)
clock.asUInt.toBool             // convert clock to Bool (Chisel 3.0 and 3.1 only)

Analog/BlackBox 类型

Chisel 支持analog类型(相当于 Verilog inout),可用于在 Chisel 中支持任意网络。这包括模拟线、三态/双向线和电源网络。

analog是一种无方向类型,需要使用附加操作符将多个analog net连接到一起。使用<>可以连接analog 类型信号,一次只能连接一个网络。

val a = IO(Analog(1.W))
val b = IO(Analog(1.W))
val c = IO(Analog(1.W))// Legal
attach(a, b)
attach(a, c)// Legal
a <> b// Illegal - connects 'a' multiple times
a <> b
a <> c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Ant-Desgin-React 穿梭框】表格穿梭框,树穿梭框的用法

Antd Desgin 穿梭框 普通用法高级用法-表格穿梭框组件高级用法-树穿梭框组件 普通用法 /* eslint-disable no-unused-vars */ import React, { useEffect, useState } from react import { Space, Transfer } from antd// Antd的穿梭框组件Mock数据 const mockData Array.fro…

西安站开营!AI 编码助手通义灵码帮大学生“整活儿”

如何更好地与 AI 为伴&#xff0c;做时代的先进开发者&#xff1f;4 月 17 日&#xff0c;阿里云推出的 AI 编程助手通义灵码与云工开物“高校训练营”走进西安多所高校开启实操培训&#xff0c;结合 AI 辅助编程的发展背景、通义灵码的具体能力和应用实操&#xff0c;帮助在校…

全世界IT人苦竞业久矣!美国FTC宣布全面废除员工竞业协议

2023 年 1 月&#xff0c;美国联邦贸易委员会&#xff08;FTC&#xff09;发布声明称&#xff0c;拟在全国范围禁止用人单位与雇员签订竞业禁止性条款。当地时间 4 月 23 日&#xff0c;FTC 宣布全面禁止所有员工&#xff08;包括高级管理人员&#xff09;签署新的竞业禁止协议…

js生成不同的阅读数分配到每一篇上面,不会因为刷新而变动

js生成不同的阅读数分配到每一篇上面,不会因为刷新而变动 {%- for article in blog.articles -%}<div class"blog-articles__article article">{%- render article-card,article: article,media_height: section.settings.image_height,media_aspect_ratio: a…

在Ubuntu上配置CUDA基础环境

一、安装驱动 1、检查硬件支持的驱动列表&#xff1a; # 桌面版本 sudo ubuntu-drivers list # 服务器版本 sudo ubuntu-drivers list --gpgpu可以看到这样的驱动名称列表&#xff1a; nvidia-driver-470 nvidia-driver-470-server nvidia-driver-535 nvidia-driver-535-ope…

xilinx Mailbox 中的ipi message地址计算方式

适用于openAmp mailbox ipi id对应的ipi message地址计算方式 官方openamp硬件配置解析 OpenAMP Base Hardware Configurations - Xilinx Wiki - Confluence openamp官方设备树 meta-openamp/meta-xilinx-tools/recipes-bsp/device-tree/files/zynqmp-openamp.dtsi at rel-v2…

SpringBoot+Vue开发记录(四)

说明&#xff1a; 本篇文章的主要内容是软件架构以及项目的前端Vue创建 一、软件架构 我道听途说的&#xff0c;听说这个东西很关键很重要什么的。 软件架构&#xff08;software architecture&#xff09;是一个系统的草图,是一系列相关的抽象模式&#xff0c;用于指导大型软…

AI商业智能的一些分享

本文主要讲AI商业相关的&#xff08;特别是营销相关的&#xff09;一些知识点&#xff0c;比较零散。 简单总结 AI商业智能&#xff1a; 1&#xff09;将人员经验抽象化为算法规则&#xff0c; 2)打造数据驱动的精益运营能力&#xff0c; 3)长期保持价格竞争力并将商品毛利让…

Day 21 LAMP架构和DNS域名

LAMP架构简介 针对不同的后端开发语言&#xff0c;使用不同的架构&#xff0c;后端项目开发语言有&#xff1a;Java&#xff0c;PHP&#xff0c;Python...... 针对于PHP项目 LAMP架构 LinuxApacheMysql/MariadbPhp LNMP架构 LinuxNginxMysql/MariadbPhp 针对于Java项目 w…

IntelliJ IDEA个人可一直使用方法参考

IntelliJ IDEA使用方法 1.下载最新的 IDEA 2021.2.2 版本安装包 https://www.jetbrains.com/idea/download/ 2.先卸载老版本的 IDEA 3.安装新版本&#xff0c;进行激活—勾选 Evaluate for free, 点击 Evaluate&#xff0c; 先试用30天: 4.随便新建个Java工程&#xff0c;然后…

国密SSL证书在等保、关保、密评合规建设中的应用

在等保、关保、密评等合规建设中&#xff0c;网络和通信安全方面的建设是非常重要的部分&#xff0c;需要实现加密保护和安全认证&#xff0c;确保传输数据机密性、完整性以及通信主体可信认证。国密SSL证书应用于等保、关保和密评合规建设中&#xff0c;不仅能够提升网络信息系…

【C++】vector常用函数总结及其模拟实现

目录 一、vector简介 二、vector的构造 三、vector的大小和容量 四、vector的访问 五、vector的插入 六、vector的删除 简单模拟实现 一、vector简介 vector容器&#xff0c;直译为向量&#xff0c;实践中我们可以称呼它为变长数组。 使用时需添加头文件#include<v…

【Burpsuite靶场】XSS专题精讲

【个人】&#xff1a;NEUQ大一学生 【专业】&#xff1a;通信工程 (Communication Engineering) 【个人方向】&#xff1a;网安、开发双管齐下 【座右铭】&#xff1a;真正的英雄主义,就是看清生活的真相后依然热爱生活 -- 罗曼.罗兰 一、认识XSS&#xff08;跨站脚本攻击&…

零基础转行网络安全,难度大吗?

说有难度那是肯定会有的&#xff0c;事在人为&#xff0c;我之前是从事于Java后端开发的&#xff0c;后面转行学网络安全&#xff0c;花了些时间&#xff0c;现在拿到了比之前开发更高的薪资&#xff0c;觉得还是挺满足的&#xff01; 1.网络安全岗位 1.1安全运维工程师 负责监…

【Python数据库】MySQL

文章目录 [toc]创建数据库创建数据表数据插入数据查询数据更新 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python数据库 学习指南&#xff1a;Python学习指南 创建数据库 import pymysqldef create_database():db pymysql.connect(hostlocalhost, userroot, passwor…

MySQL中like关键字与索引的使用

严格来说&#xff0c;like %abc本身是不能使用索引的&#xff0c;但是一条SQL语句有没有使用索引&#xff0c;要看这条SQL语句整体写的是什么&#xff0c;like不是疫情期间的新冠病毒&#xff0c;沾上一点儿就会把索引隔离开。只要你明白自己在干什么&#xff0c;完全可以使用l…

Maven多模块快速升级超好用Idea插件-MPVP

功能&#xff1a;多模块maven项目快速升级指定版本插件&#xff0c;并提供预览和相关升级模块日志能力。 可快速进行版本升级&#xff0c;进行部署到Maven仓库。 安装&#xff1a; 可在idea插件中心进行安装 / 下载资源拖动安装 MPVP(Maven) - IntelliJ IDEs Plugin | Marke…

html5 语义化标签实用指南

文章导读&#xff1a;AI 辅助学习前端&#xff0c;包含入门、进阶、高级部分前端系列内容&#xff0c;当前是 HTML 的部分&#xff0c;公众号会持续更新&#xff0c;适合零基础的朋友&#xff0c;已有前端工作经验的可以不看&#xff0c;也可以当作基础知识回顾。 HTML5 中新增…

遥测终端赋能水库泄洪监测预警,筑牢度汛安全防线!

4月10日&#xff0c;水利部召开水库安全度汛视频会议。会议要求着力强化水库防洪“四预”措施&#xff0c;加快构建雨水情监测预报“三道防线”&#xff0c;完善预警信息发布机制&#xff0c;推进数字孪生水利工程建设&#xff0c;为科学调度指挥决策提供支持。强调坚决牢牢守住…

Ubuntu Pycharm安装

下载PyCharm&#xff0c;https://www.jetbrains.com/pycharm/download/?sectionlinux 然后按照下图执行安装&#xff1a; 安装的时候可能出现的问题&#xff1a; 问题1&#xff1a;No JDK found. Please validate either PYCHARM_JDK, JDK_HOME or JAVA_HOME environment var…