【VS Code+Verilog+Vivado使用】(1)常用插件

文章目录

  • 1 常用插件
    • 1.1 Chinese Language Pack
    • 1.2 Verilog-HDL/SV/BSV
      • 1.2.1 语法高亮
      • 1.2.2 代码片段
      • 1.2.3 代码检查
      • 1.2.4 Ctags
        • 1.2.4.1 自动补全
          • 设置1
          • 设置2
        • 1.2.4.2 悬停显示
        • 1.2.4.3 转到定义
        • 1.2.4.4 查看定义
        • 1.2.4.5 模块例化
          • 设置1
    • 1.3 vscode-icons
    • 1.4 Hex Editor
    • 1.5 Error Lens
    • 1.6 TODO Tree
    • 1.7 Waveform Render

1 常用插件

1.1 Chinese Language Pack

简体中文语言包插件,用于汉化VS Code,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

第一步:按F1或Ctrl+Shift+P快捷键,打开命令面板,输入"configure display language",如下图所示:

在这里插入图片描述

第二步:点击"Configure Display Language",点击"中文(简体) (zh-cn)",自动安装完成后,如下图所示:

在这里插入图片描述

1.2 Verilog-HDL/SV/BSV

使用VS Code进行FPGA开发最重要的插件,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

主要功能如下图所示:

在这里插入图片描述

翻译过来就是:

  1. 语法高亮
  2. 代码片段
  3. 代码检查
  4. Ctags
    1)自动补全
    2)文档符号大纲
    3)悬停显示
    4)转到定义
    5)查看定义
    6)模块例化

1.2.1 语法高亮

语法高亮就是将Verilog-HDL/SV/BSV语法中的关键字以高亮的形式显示,如下图所示:
在这里插入图片描述

1.2.2 代码片段

第一步:找到verilog.json文件,路径如下图所示:

在这里插入图片描述

第二步:打开verilog.json文件,仿照已有代码片段的格式编写自己想要的代码片段,如下图所示:

在这里插入图片描述

第三步:点击需要插入代码片段的位置,输入想要插入的代码片段的"prefix",按向上/向下键选择,选中的条目会高亮显示,如下图所示:

按Enter键插入代码片段,按Tab键依次选择占位符进行编辑即可,如下图所示:

在这里插入图片描述

名词解释之占位符:在verilog.json文件中以"$"开头的部分。

1.2.3 代码检查

Vivado的代码检查工具是xvlog,设置步骤如下:

第一步:在环境变量中设置xvlog的路径,右击我的电脑 > 属性 > 高级 > 系统设置 > 环境变量 > 系统环境变量 > path > 编辑 > 新建,填入xvlog的路径,如下图所示:

在这里插入图片描述

第二步:VS Code左下角 > 管理 > 设置,搜索"linter",点击左侧"Verilog configuration",将"verilog.linting.linter"选项设置为"xvlog",如下图蓝框部分所示:

在这里插入图片描述

第三步:检测xvlog是否设置成功,VS Code最上边 > 查看 > 终端,输入"xvlog --version",如下图所示:

在这里插入图片描述

第四步:检查效果如下图所示:

在这里插入图片描述

1.2.4 Ctags

第一步:下载最新版的Ctags,下载后的压缩包解压到任意位置即可,无需安装,如下图所示:

在这里插入图片描述

第二步:在环境变量中设置ctags.exe的路径,方法参考1.2.3小节,设置后如下图所示:

在这里插入图片描述

第三步:VS Code左下角 > 管理 > 设置,搜索"ctags",将"verilog.ctags.path"选项设置为"ctags",如下图蓝框部分所示:

在这里插入图片描述

1.2.4.1 自动补全

自动补全功能:编辑器根据输入的文本内容自动推荐可能的代码片段、变量或关键字等,帮助程序员更快地完成代码编写工作。

输入文本,按向上/向下键选择所需的对象,按Enter键插入对象,如下图所示:

在这里插入图片描述

设置1

VS Code左下角 > 管理 > 设置,搜索"snippets",点击左侧"建议",不勾选"editor.suggest.snippetsPreventQuickSuggestions"选项,如下图红框部分所示,否则,当插入代码片段后,在对代码片段的占位符进行编辑时,代码的自动补全功能不起作用。

在这里插入图片描述

设置2

VS Code左下角 > 管理 > 键盘快捷方式,搜索"accept selected suggestion",如下图所示,红框部分表示,按下Tab键或Enter键均可自动补全代码内容。

在这里插入图片描述

在插入代码片段后,使用Tab键依次选择占位符进行编辑时,代码片段的Tab键和代码自动补全的Tab键会发生冲突,需要取消代码自动补全的Tab键绑定,只保留Enter键绑定,如下图所示,右击Tab键绑定,点击"删除键绑定"即可。

在这里插入图片描述

1.2.4.2 悬停显示

将鼠标放在变量名上,会自动弹出变量声明悬浮窗,如下图所示。

在这里插入图片描述

1.2.4.3 转到定义

按住Ctrl键或Alt键,点击变量名,会自动跳转到变量声明处。

1.2.4.4 查看定义

右击变量名 > 快速查看 > 速览定义,可以展开变量声明处的代码,用于修改变量声明十分方便,无需来回跳转,修改完后按ESC键关闭即可,如下图所示:

在这里插入图片描述

1.2.4.5 模块例化

第一步:点击需要例化模块的位置;

第二步:按F1或Ctrl+Shift+P快捷键,打开命令面板,输入"instantiate",如下图所示:

在这里插入图片描述

第三步:点击"Verilog:Instantiate Module"命令,选择需要例化的模块,如下图所示:

在这里插入图片描述

点击"…folder"可以访问任意位置的文件。

设置1

VS Code左下角 > 管理 > 键盘快捷方式,搜索"instantiate module",点击左侧+号,添加键绑定,如下图所示:

在这里插入图片描述

将快捷键设置为"CTRL+I",按Enter键完成设置:

在这里插入图片描述

设置快捷键绑定后,在.v文件中按"CTRL+I"快捷键呼出模块例化命令,选择模块直接例化即可。

1.3 vscode-icons

文件图标主题插件,用于将不同的文件显示为不同的图标,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

VS Code左下角 > 管理 > 主题 > 文件图标主题,点击"VSCode Icons",如下图所示:

在这里插入图片描述

显示效果如下图所示:
在这里插入图片描述

1.4 Hex Editor

二进制文件查看插件,用于查看二进制文件,如vivado生成的bit文件,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

双击二进制文件打开,提示无法打开,如下图所示:

在这里插入图片描述

点击"仍然打开",弹出如下图所示窗口:

在这里插入图片描述

点击"Hex Editor",文件打开后效果如下图所示:
在这里插入图片描述

1.5 Error Lens

错误行信息显示插件,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

该插件可以将错误行信息显示在错误行右侧,无需鼠标悬停在错误行以显示错误信息或在终端中查看错误信息,方便排查错误原因,如下图所示:

在这里插入图片描述

1.6 TODO Tree

待办事项插件,用于对代码进行标记,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

插件基本设置如下图所示:

在这里插入图片描述

插件使用效果如下图所示:

在这里插入图片描述

点击上图所示标签,可以直接打开所在文件,并转到标签位置,如下图所示:

在这里插入图片描述

1.7 Waveform Render

WaveDrom插件,用于绘制时序图,在扩展商店搜索安装即可,如下图所示:

在这里插入图片描述

使用方法如下:

第一步:新建.txt文本文件;

第二步:按CTRL+K+D快捷键,调出时序图窗口,相当于"Waveform Render: Draw"命令,窗口右下角显示"Live Preview OFF",如下图所示:
在这里插入图片描述

第三步:按CTRL+K+L快捷键,打开实时预览功能,相当于"Waveform Render: Toggle Live Previe"命令,窗口右下角显示"Live Preview ON/OFF”,如下图所示:

在这里插入图片描述

第四步:编写描述时序图的代码。

请参考:
Verilog:【7】超详细WaveDrom教程,时序图绘制利器,看这一篇就够了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web开发8:前后端分离开发

在现代的 Web 开发中,前后端分离开发已经成为了一种常见的架构模式。它的优势在于前端和后端可以独立开发,互不干扰,同时也提供了更好的可扩展性和灵活性。本篇博客将介绍前后端分离开发的概念、优势以及如何实现。 什么是前后端分离开发&am…

国考省考行测:逻辑判断,分析推理,排除法,假设法

国考省考行测:逻辑判断,分析推理 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论和…

【数据结构与算法】之哈希表系列-20240129

这里写目录标题 一、217. 存在重复元素二、219. 存在重复元素 II三、242. 有效的字母异位词四、268. 丢失的数字五、290. 单词规律六、349. 两个数组的交集七、350. 两个数组的交集 II 一、217. 存在重复元素 简单 给你一个整数数组 nums 。如果任一值在数组中出现至少两次 &a…

Java 面试题之 IO(二)

字符流 文章目录 字符流Reader(字符输入流)Writer(字符输出流) 文章来自Java Guide 用于学习如有侵权,立即删除 不管是文件读写还是网络发送接收,信息的最小存储单元都是字节。 那为什么 I/O 流操作要分为字…

【linux】-linux操作系统分支及包管理系统

一、Linux主要版本分支 免费的:ubuntu、centos,分属红帽、大便分支。 centos渐渐退出,CentOS 之父创造的 Rocky Linux(再见 CentOS! Rocky Linux 要来了) 二、Rocky Linux 官方地址:https://rockylinux.…

【大数据】Flink 架构(三):事件时间处理

《Flink 架构》系列(已完结),共包含以下 6 篇文章: Flink 架构(一):系统架构Flink 架构(二):数据传输Flink 架构(三):事件…

【Python笔记-设计模式】建造者模式

一、说明 又称生成器,是一种创建型设计模式,使其能够分步骤创建复杂对象。允许使用相同的创建代码生成不同类型和形式的对象。 (一) 解决问题 对象的创建问题:当一个对象的构建过程复杂,且部分构建过程相互独立时,可…

吉利汽车:S-SDLC融入开发体系,推动智能汽车安全发展

吉利汽车是中国汽车行业的知名品牌,是一家具有国际化视野的汽车企业,在中国汽车市场自主品牌中占据领军地位。吉利汽车集团数字化中心利用数字化技术优势赋能业务升级,推动研发效率提升和产品安全能力拓展,进行整体数字化转型。 在…

键盘上Ins键的作用

前几天编写文档时,发现一个问题:插入内容时,输入的字符将会覆盖光标位置后的字符。原来是按到了键盘上的 Ins键,解决方法是:再按一次 Ins键(Ins键如果独立作为一键时,否则使用 “Fn Ins”组合键…

C++ —— 智能指针

C —— 智能指针 文章目录 C —— 智能指针一、为什么需要使用智能指针?二、内存泄漏什么是内存泄漏?内存泄漏的危害?内存泄漏分类 三、智能指针的使用及原理1. RAII2. 智能指针的原理 三、智能指针的缺陷及其发展3.1 std::auto_ptr3.2 std::…

华为笔记本matebook pro X如何扩容 C 盘空间

一、前提条件 磁盘扩展与合并必须是相邻分区空间,且两个磁盘类型需要相同。以磁盘分区为 C 盘和 D 盘为例,如果您希望增加 C 盘容量,可以先将 D 盘合并到 C 盘,然后重新创建磁盘分区,分配 C 盘和 D 盘的空间大小。 访…

Element ui 的组件弹窗 el-dialog点击的时候全屏变灰问题解决

最近在使用Element UI 的弹窗组件的时候发现这个组件各种的应用都没有问题,数据和元素的应用都是正确的但是在点击显示这个弹窗的时候全屏幕都会变灰。 这也不是因为增加了modal 遮挡幕的问题,在经过不断的排查代码的时候基本排除了代码的问题&#xf…

利用外卖系统源码构建高效的在线订餐平台

在当今数字化时代,外卖服务已成为人们日常生活中不可或缺的一部分。为了满足用户需求,许多创业者和企业都希望搭建自己的在线订餐平台。利用现有的外卖系统源码,可以快速构建一个高效、安全的在线订餐平台。本文将介绍如何利用外卖系统源码来…

Qt SQLite3数据库加密 QtCipherSqlitePlugin

在客户端软件开发过程中,基本都会涉及到数据库的开发。QT支持的数据库也有好几种(QSQLITE, QODBC, QODBC3, QPSQL, QPSQL7),SQLite就是其中之一,但这个 SQLite 是官方提供的开源版本,没有加密功能的。如果对…

k8s 进阶实战笔记 | 应用的蓝绿、金丝雀发布笔记

文章目录 应用的蓝绿、金丝雀发布笔记应用升级策略停机升级滚动更新蓝绿发布金丝雀发布 应用的蓝绿、金丝雀发布笔记 应用升级策略 Deployment.spec.strategy 设置 Recreate:同时删除所有副本,停机升级策略 不存在新老版本共存 存在某个时间段服务不可…

麒麟系统—— openKylin 安装 redis

麒麟系统—— openKylin 安装 redis 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。 二、下载安装文件三、解压安装解压安装 四、配置与运行修改配置文件以配置文件运行 五、加入到服务中最终:介绍配置的其他参数使用 Redis是一种开源的、基于内存的高速缓存…

MySQL原理(一)架构组成(2)逻辑模块组成

总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql解析,执行计划优化,query cache的处理等等&…

Vue之初识Vue CLI 脚手架

Vue CLI 是Vue 官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】 脚手架有什么好处? 1.开箱即用,零配置 2.内置 babel 等工具 3.标准化 使用步骤: 1.全局安装(一次):yarn globaladd vue/cli …

私有化部署pdf工具箱

功能简介 用于合并/拆分/旋转/移动PDF及其页面的完全交互式GUI。 将多个 PDF 合并到一个生成的文件中。 将 PDF 拆分为多个文件,并按指定的页码或将所有页面提取为单个文件。 将 PDF 页面重新组织为不同的顺序。 以 90 度为增量旋转 PDF。 删除页面。 多页布局…

STM32学习笔记一——初识STM32

目录 一、什么是ARM 二. Cortex 内核 三.什么是STM32 四.STM32核心板原理图: 五.STM32的内部结构: 六.stm32系统结构简化图 STM32基本原理分析: 七.典型型号——STM32F103ZET6 stm32——32位单片机(数据总线是32位的&am…