当前位置: 首页 > news >正文

网站建设基本常识/代引流推广公司

网站建设基本常识,代引流推广公司,wordpress插件广告,上海市教育网官网注:以下所有配置在Ubuntu22.04笔记本中运行 chisel模板构建 复制项目模板文件 git clone https://github.com/schoeberl/chisel-examples.git安装vscode插件Metals 打开顶层目录,并设置为项目文件夹 打开终端输入 tree -L 3 # 查看三层目录结构得到…

注:以下所有配置在Ubuntu22.04笔记本中运行

chisel模板构建

复制项目模板文件

git clone https://github.com/schoeberl/chisel-examples.git

安装vscode插件Metals
打开顶层目录,并设置为项目文件夹
打开终端输入

tree -L 3		# 查看三层目录结构

得到如下目录结构(helloworld文件夹示例下的结构)

$ tree -L 3
.
├── build.sbt
├── Makefile
├── quartus
│   ├── altde0
│   │   ├── hello.qpf
│   │   └── hello.qsf
│   ├── altde1
│   │   ├── hello.qpf
│   │   └── hello.qsf
│   ├── altde2-115
│   │   ├── hello.qpf
│   │   └── hello.qsf
│   ├── bemicro
│   │   ├── hello.cdf
│   │   ├── hello.qpf
│   │   ├── hello.qsf
│   │   └── hello.sdc
│   ├── bemicro_cv_a9
│   │   ├── hello.cdf
│   │   ├── hello.qpf
│   │   ├── hello.qsf
│   │   └── hello.sdc
│   └── de10-nano
│       ├── hello.cdf
│       ├── hello.qpf
│       └── hello.qsf
├── README.md
├── src
│   ├── main
│   │   └── scala
│   └── test
│       └── scala
├── verilog
│   └── hello_top.v
└── vivado├── arty-a7-100│   ├── Arty-A7-100-Master.xdc│   ├── project.tcl│   └── README.md└── basys3├── Basys-3-Master.xdc├── project.tcl└── README.md16 directories, 27 files

在./src/main目录下定义模块文件
在./src/test目录下编写test测试文件
在./verilog目录下生成相应的Verilog代码

一个简单的chisel案例

在./src/main目录下定义自动售货机的chisel样例

import chisel3._
import chisel3.util._class FSM extends Module{val io = IO(new Bundle{val coin_one    =   Input(Bool())	// 由于均为1bit数据,这里使用的数据类型为布尔类型,等效为 val coin_one = Input(Uint(1.W))val coin_half   =   Input(Bool())val coin_back   =   Output(Bool())val water       =   Output(Bool())})
val s_idle :: s05 :: s10 :: s15 :: s_ok :: Nil = Enum(5)		// 建立状态机列表
val current_state = RegInit(s_idle)								// 定义初态(初始化)// 使用switch函数完成状态机的构建
switch(current_state) {is(s_idle) {when(io.coin_half) {current_state := s05}when(io.coin_one)  {current_state := s10}}is(s05) {when(io.coin_half) {current_state := s10}when(io.coin_one)  {current_state := s15}}is(s10) {when(io.coin_half) {current_state := s15}when(io.coin_one)  {current_state := s_ok}}is(s15) {when(io.coin_half) {current_state := s_ok}when(io.coin_one)  {current_state   :=  s_ok}}is(s_ok) {current_state := s_idle}
}
io.water := (current_state === s_ok)
io.coin_back := (current_state === s15 & io.coin_one === true.B)
}/* An object extending App to generate the Verilog code*/
object FSM extends App {			// 生成相应的Verilog代码
// 这里设置生成Verilog的目录位置(new chisel3.stage.ChiselStage).emitVerilog(new FSM(), Array("--target-dir", "./verilog/FSM"))
}

生成Verilog代码

在主目录下输入

make		# 此处等效于sbt run

选择顶层项目

$ make
sbt run
[info] welcome to sbt 1.9.7 (Private Build Java 17.0.9)
[info] loading settings for project hello-world-build-build from metals.sbt ...
[info] loading project definition from /home/wzm/Graduation Design/task/HyGCN Accelerator/chisel_try_nouse/chisel-examples/hello-world/project/project
[info] loading settings for project hello-world-build from metals.sbt ...
[info] loading project definition from /home/wzm/Graduation Design/task/HyGCN Accelerator/chisel_try_nouse/chisel-examples/hello-world/project
[success] Generated .bloop/hello-world-build.json
[success] Total time: 1 s, completed 2024年1月15日 下午3:15:28
[info] loading settings for project hello-world from build.sbt ...
[info] set current project to hello-world (in build file:/home/wzm/Graduation%20Design/task/HyGCN%20Accelerator/chisel_try_nouse/chisel-examples/hello-world/)Multiple main classes detected. Select one to run:[1] FSM[2] Hello[3] muxEnter number: 1		# 此处进行主项目的选择
[info] running FSM 
[success] Total time: 34 s, completed 2024年1月15日 下午3:16:02

在./verilog目录下查看生成的代码
一共是三个文件
—FSM.V
—FSM.fir
—FSM.anno.json
这里只关心FSM.v
生成代码如下:

module FSM(input   clock,input   reset,input   io_coin_one,input   io_coin_half,output  io_coin_back,output  io_water
);
`ifdef RANDOMIZE_REG_INITreg [31:0] _RAND_0;
`endif // RANDOMIZE_REG_INITreg [2:0] current_state; // @[FSM.scala 12:28]wire [2:0] _GEN_2 = io_coin_half ? 3'h2 : current_state; // @[FSM.scala 12:28 19:{28,43}]wire [2:0] _GEN_4 = io_coin_half ? 3'h3 : current_state; // @[FSM.scala 12:28 23:{28,43}]wire [2:0] _GEN_5 = io_coin_one ? 3'h4 : _GEN_4; // @[FSM.scala 24:{28,43}]wire [2:0] _GEN_6 = io_coin_half ? 3'h4 : current_state; // @[FSM.scala 12:28 27:{28,43}]wire [2:0] _GEN_7 = io_coin_one ? 3'h4 : _GEN_6; // @[FSM.scala 28:28 29:29]wire [2:0] _GEN_8 = 3'h4 == current_state ? 3'h0 : current_state; // @[FSM.scala 13:23 33:23 12:28]wire [2:0] _GEN_9 = 3'h3 == current_state ? _GEN_7 : _GEN_8; // @[FSM.scala 13:23]assign io_coin_back = current_state == 3'h3 & io_coin_one; // @[FSM.scala 37:40]assign io_water = current_state == 3'h4; // @[FSM.scala 36:28]always @(posedge clock) beginif (reset) begin // @[FSM.scala 12:28]current_state <= 3'h0; // @[FSM.scala 12:28]end else if (3'h0 == current_state) begin // @[FSM.scala 13:23]if (io_coin_one) begin // @[FSM.scala 16:28]current_state <= 3'h2; // @[FSM.scala 16:43]end else if (io_coin_half) begin // @[FSM.scala 15:28]current_state <= 3'h1; // @[FSM.scala 15:43]endend else if (3'h1 == current_state) begin // @[FSM.scala 13:23]if (io_coin_one) begin // @[FSM.scala 20:28]current_state <= 3'h3; // @[FSM.scala 20:43]end else begincurrent_state <= _GEN_2;endend else if (3'h2 == current_state) begin // @[FSM.scala 13:23]current_state <= _GEN_5;end else begincurrent_state <= _GEN_9;endend
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INITinteger initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin`ifdef RANDOMIZE`ifdef INIT_RANDOM`INIT_RANDOM`endif`ifndef VERILATOR`ifdef RANDOMIZE_DELAY#`RANDOMIZE_DELAY begin end`else#0.002 begin end`endif`endif
`ifdef RANDOMIZE_REG_INIT_RAND_0 = {1{`RANDOM}};current_state = _RAND_0[2:0];
`endif // RANDOMIZE_REG_INIT`endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule

相关文章:

Chisel入门初步0

注&#xff1a;以下所有配置在Ubuntu22.04笔记本中运行 chisel模板构建 复制项目模板文件 git clone https://github.com/schoeberl/chisel-examples.git安装vscode插件Metals 打开顶层目录&#xff0c;并设置为项目文件夹 打开终端输入 tree -L 3 # 查看三层目录结构得到…...

MySQL 8.0中移除的功能(一)

以下项目已经过时并在MySQL 8.0中被删除。如果有替代方案&#xff0c;请务必更新应用程序以使用这些替代方案。 对于在MySQL 8.0中被删除的功能&#xff0c;如果从MySQL 5.7源复制到MySQL 8.0副本时&#xff0c;可能会导致语句失败&#xff0c;或者在源和副本上产生不同的效果…...

可抓取性和可索引性:它们是什么以及如何影响搜索引擎优化

什么是可抓取性&#xff1f; 网页的可抓取性是指搜索引擎&#xff08;如谷歌&#xff09;发现网页的难易程度。 谷歌发现网页的过程称为爬行。它使用称为网络爬虫&#xff08;也称为机器人或蜘蛛&#xff09;的计算机程序。这些程序会跟踪网页之间的链接&#xff0c;以发现新…...

Django教程第4章 | Web开发实战-三种验证码实现

系列&#xff1a;Django学习教程 验证码的存在是为了防止系统被暴力破解攻击&#xff0c;几乎每个系统都有验证码。下面将介绍三种生成验证码方式。 您可以根据你自己的需要进行学习。 手动生成验证码 安装绘图依赖&#xff0c;利用的是画图模块 PIL 以及随机模块 random 在后…...

深度探讨 Golang 中并发发送 HTTP 请求的最佳技术

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在 Golang 领域&#xff0c;并发发送 HTTP 请求…...

VUE指令(二)

vue会根据不同的指令&#xff0c;针对不同的标签实现不同的功能。指令是带有 v- 前缀的特殊标签属性。指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于 DOM。 8、v-for&#xff1a;基于数据循环&#xff0c;多次渲染整个…...

开源对象存储服务器MinIO本地部署并结合内网穿透实现远程访问管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…...

【TypeScript】tsconfig.json文件到底是干啥的?作用是什么?

参考学习博文&#xff1a; 掌握tsconfig.json 一、tsconfig.json简介 1、tsconfig.json是什么&#xff1f; TypeScript 使用 tsconfig.json 文件作为其配置文件&#xff0c;当一个目录中存在 tsconfig.json 文件&#xff0c;则认为该目录为 TypeScript 项目的根目录。 通常…...

wagtail的数据模型和渲染

文章目录 前言页面数据模型数据库字段部分搜索部分编辑面板基础面板结构化面板父页面/子页面类型规则页面URLs自定义页面模型的URL模式获取页面实例的URL 模板渲染为页面模型添加模板模板上下文自定义模板上下文更改模板动态选择模板Ajax 模板 内联模型在多个页面类型之间重用内…...

OpenHarmony4.0适配LVDS屏幕驱动

1.概述 手头有一块RK3568的开发板OK3568-C&#xff0c;但是还没有适配OpenHarmony&#xff0c;用的还是LVDS屏幕&#xff0c;但是官方和网上好像还没有OpenHarmony4.0的LVDS屏幕驱动的通用实现&#xff0c;所以决定尝试了一下适配该开发板&#xff0c;完成LVDS屏幕驱动的适配&…...

【playwright】新一代自动化测试神器playwright+python系列课程01-playwright驱动浏览器

Playwright驱动浏览器 安装 Playwright 时&#xff0c;Playwright默认自动安装了三种浏览器&#xff08;Chromium、Firefox 和 WebKit&#xff09;。我们可以驱动这三种浏览器中的任意一种。 使用with上下文管理器 启动chromium浏览器 python # # author: 测试-老姜 交流…...

POSIX API与网络协议栈

本文介绍linux中与tcp网络通信相关的POSIX API&#xff0c;在每次调用的时候&#xff0c;网络协议栈会进行的操作与记录。 POSIX API Posix API&#xff0c;提供了统一的接口&#xff0c;使程序能得以在不同的系统上运行。简单来说不同的操作系统进行同一个活动&#xff0c;比…...

互联网加竞赛 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…...

腾讯云 IPv6 解决方案

产品矩阵全覆盖 腾讯云全线产品 All in IPv6&#xff1b;云服务器、私有网络、负载均衡、内容分发、域名解析、DDoS 高防等都已支持 IPv6。 全球 IPv6 基础设施 腾讯云在全球开放25个地理区域&#xff0c;运营53个可用区&#xff1b;目前已有多个地域提供 IPv6 接入能力。 …...

Appium 自动化测试

1.Appium介绍 1&#xff0c;appium是开源的移动端自动化测试框架&#xff1b; 2&#xff0c;appium可以测试原生的、混合的、以及移动端的web项目&#xff1b; 3&#xff0c;appium可以测试ios&#xff0c;android应用&#xff08;当然了&#xff0c;还有firefoxos&#xff09;…...

深入浅出Android dmabuf_dump工具

目录 dmabuf是什么&#xff1f; dmabuf_dump工具介绍(基于Android 14) Android.bp dmabuf_dump.cpp 整体架构结构如下 dmabuf_dump主要包含以下功能 前置背景知识 fdinfo 思考 bufinfo Dump整个手机系统的dmabuf Dump某个进程的dmabuf​​​​​​​ 以Table[buff…...

Guava RateLimiter预热模型

本文已收录至我的个人网站&#xff1a;程序员波特&#xff0c;主要记录Java相关技术系列教程&#xff0c;共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源&#xff0c;让想要学习的你&#xff0c;不再迷茫。 什么是流量预热 我们都知道在做运动之前先得来几组…...

【搭建个人知识库-3】

搭建个人知识库-3 1 大模型开发范式1.1 RAG原理1.2 LangChain框架1.3 构建向量数据库1.4 构建知识库助手1.5 Web Demo部署 2 动手实践2.1 环境配置2.2 知识库搭建2.2.1 数据收集2.2.2 加载数据2.2.3 构建向量数据库 2.3 InternLM接入LangChain2.4 构建检索问答链1 加载向量数据…...

如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C++

如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C 的讨论&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿…...

springboot网关添加swagger

添加依赖 <dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>2.0.2</version></dependency>添加配置类&#xff0c;与服务启动类同一个层级 地址&#xff1a;http…...

代码随想录 Leetcode383. 赎金信

题目&#xff1a; 代码&#xff08;首刷自解 2024年1月15日&#xff09;&#xff1a; class Solution { public:bool canConstruct(string ransomNote, string magazine) {vector<int> v(26);for(auto letter : magazine) {v[letter - a];}for(auto letter : ransomNote…...

上下左右视频转场模板PR项目工程文件 Vol. 05

pr转场模板&#xff0c;视频画面上下左右转场后带有一点点回弹效果的PR项目工程模板 Vol. 05 项目特点&#xff1a; 回弹效果视频转场&#xff1b; Premiere Pro 2020及以上&#xff1b; 适用于照片和视频转场&#xff1b; 适用于任何FPS和分辨率&#xff1b; 视频教程。 PR转场…...

【正点原子STM32连载】第三十三章 单通道ADC采集实验 摘自【正点原子】APM32E103最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子APM32E103最小系统板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第三…...

Linux系统使用docker部署Geoserver(简单粗暴,复制即用)

1、拉取镜像 docker pull kartoza/geoserver:2.20.32、创建数据挂载目录 # 统一管理Docker容器的数据文件,geoserver mkdir -p /mydata/geoserver# 创建geoserver的挂载数据目录 mkdir -p /mydata/geoserver/data_dir# 创建geoserver的挂载数据目录&#xff0c;存放shp数据 m…...

libcurl使用默认编译的winssl进行https的双向认证

双向认证&#xff1a; 1.服务器回验证客户端上报的证书 2.客户端回验证服务器的证书 而证书一般分为&#xff1a;1.受信任的根证书&#xff0c;2不受信任的根证书。 但是由于各种限制不想在libcurl中增加openssl&#xff0c;那么使用默认的winssl也可以完成以上两种证书的双…...

MySQL运维实战(3.3) 管理数据库(database)

作者&#xff1a;俊达 引言 数据库的创建和管理是构建可靠数据的关键&#xff0c;关系到所存储数据的安全与稳定。在 MySQL 这个强大的关系型数据库系统中&#xff0c;数据库的创建与管理需要精准的步骤和妥善的配置。下面&#xff0c;将深入探讨如何使用MySQL 来管理数据库&…...

Web3去中心化存储:重新定义云服务

随着Web3技术的崭露头角&#xff0c;去中心化存储正在成为数字时代云服务的全新范式。传统的云服务依赖于中心化的数据存储架构&#xff0c;而Web3的去中心化存储则为用户带来了更安全、更隐私、更可靠的数据管理方式&#xff0c;重新定义了云服务的未来。 1.摒弃中心化的弊端 …...

纸尿裤行业调研:预计到2024年提高至68.1%

母婴大消费是指围绕孕产妇和0-14岁婴幼童人群&#xff0c;贯穿孕产妇孕产及产后护理周期、婴幼童成长周期的满足其衣、食、住、行、用、玩、教等需求的消费品的总和。 不同产品消费频次各异&#xff0c;纸尿裤是母婴大消费中的最为高频且刚需的易耗品。当前&#xff0c;消费升…...

目标检测数据集 - 行人检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;行人检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如校园行人、街景行人、道路行人、遮挡行人、严重遮挡行人数据&#xff1b;适用实际项目应用&#xff1a;公共场所监控场景下行人检测项目&#xff0c;以及作为…...

重磅!巨匠纺品鉴正式签约“体坛冠军程晨”为品牌形象代言人

2024年&#xff0c;巨匠纺品鉴打响品牌营销开年第一战&#xff0c;携手全国啦啦操冠军程晨&#xff0c;强势开启“冠军品牌、冠军优选、冠军品质”中国年&#xff0c;实现品牌战略全面升级&#xff0c;全力传递"冠军品质"的品牌精神,拓展品牌影响力的深度和广度,为品…...