Vscode配置Verilog开发环境(二)

  两年前我写过一篇vscode配置fpga开发环境的博客,近期发现查看的人数还是比较多的,经过两年的使用,优化了代码模板以及删减了一些插件等等,因此有了本文。

  目前我的vscode只有下图中的九个插件,相比前文已经减少了一些了。其中CTags Support用于语法检测、higtligt -words主要用于高亮选定的部分、indent-rainbow方便查看缩进、local History用于保存历史文件、partial Diff用于对比代码差异、todo tree用于标记一些关键内容、Verilog Highlight用于Verilog的语法高亮、Verilog_TestBench用于调用modelsim进行仿真、Vscode-icons就不用说了。

在这里插入图片描述

图1 vscode插件

  其实只有三个插件与Verilog开发有关,除higtligt -words外的其余插件在前文都有配置方式,本文不再赘述。

1、配置higtligt -words

  搜索该插件,然后点击安装即可,如下图所示。

在这里插入图片描述

图2 higtligt -words插件安装

  该插件的功能其实很多,但是我常用的就是通过快捷键用不同颜色的方框框选内容,方便查看某些信号的编码。该功能的快捷键设置如下所示,首先通过vscode左下角的齿轮进入快捷键设置界面。

在这里插入图片描述

图3 设置快捷键

  然后在搜索框中输入highlight,把Highlight Toggle Current的快捷键设置成自己习惯用的(注意不要覆盖其他快捷键的功能,我设置的是Shift+X)。

在这里插入图片描述

图4 快捷键设置

  使用方式如下所示,鼠标选中需要高亮的信号,然后使用上述设置快捷键(Shift+X),即可高亮该信号。重点是可以使用不同颜色框选不同信号,便于在模块中查找相关的信号。在次按下快捷键就可以取消框选。

高亮插件使用

2、代码片段

  两年前我使用的是Verilog-HDL/SystemVerilog/Bluespec SystemVerilog这个插件实现代码补全和代码模板设计,但是后面发现个问题,就是这个插件每次更新都会替换之前的配置文件,导致模板失效,就很麻烦。

在这里插入图片描述

图5 Verilog-HDL/SystemVerilog/Bluespec SystemVerilog插件

  后来发现vscode本身就有代码片段的功能,因此只需要把配置文件添加到vscode本身的代码片段里面就好了,这个插件也就没有使用的必要了。

  首先在vscode的设置处选中用户代码片段,如下图所示。

在这里插入图片描述

图6 设置用户代码片段

  然后在弹出的搜索框中输入verilog.json,点击进入该文件,把我提供的verilog.json文件(文末会有获取链接)内容复制到该文件中,然后点击ctrl+s保存即可。

在这里插入图片描述

图7 搜索verilog.json文件

  verilog.json的配置内容如下所示,其实就是在上述插件的配置内容上做了一些修改,添加了一些我自己习惯用的东西,读者也可以根据自己的喜好进行修改。

在这里插入图片描述

图8 verilog.json配置内容

  我写模块一般就是采用以下方式,首先通过module关键字调出我的模板,然后使用Shixu来调用常见的时序模块。因为xilinx和altera的芯片都在用,两种芯片推荐的复位方式不一样,因此模板会有两种,用户可以根据自己的喜好选择保留。

计数器模块

  可能在不使用FPGA开发的人看我们的代码风格可能会觉得奇怪,为什么端口信号、冒号这些都要对齐,这其实是为了方便例化。一个模块端口信号可能有几十上百个,例化不可能手动去打,都是使用软件的列选操作,然后粘贴复制。

  例化操作如下所示,该模块端口信号有五六十个,直接使用列选操作进行粘贴复制,然后进行修改。首先鼠标停留在界面的起始位置,然后键盘按住Shift和alt键,鼠标点击结束位置,可以选中起始位置和结束位置的连线作为对角线的矩形区域。

例化

  这种方式比使用插件更简单,插件的例化容易让信号错乱,会很烦。

  大概内容就这么多,其中代码模板中计数器,状态机等也做了相应修改,使用更加简介,模板在公众号后台回复“Verilog配置文件”(不包括引号)即可获取。

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

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

相关文章

地级市绿色创新及碳排放与环境规划数据(2000-2021年)

数据简介:分享各个城市对于碳排放的降低做出了哪些共享。该数据是地级市2000-2021年间由绿色创新、碳排放与环境规制数据构成的能源与环境研究数据大合集,并对其进行可视化处理,供大家研究使用。当今我国大力推进生态文明建设、美丽中国建设等…

【日常开发之Windows共享文件】Java实现Windows共享文件上传下载

文章目录 Windows 配置代码部分Maven代码 Windows 配置 首先开启服务,打开控制面板点击程序 点击启用或关闭Windows功能 SMB1.0选中红框内的 我这边是专门创建了一个用户 创建一个文件夹然后点击属性界面,点击共享 下拉框选择你选择的用户点击添加…

python爬虫必须要高匿IP吗 ?

各个平台搜索关键词就可以找到不同品牌的代理IP了。 找倒是不难,难的是能从中挑选出靠谱且合适的代理品牌。 在选择代理IP这块,不建议使用免费和超低价的代理,因为这一类的代理往往非常不稳定,很多都被网站拉黑过,特…

PS添加物体阴影

一、选择背景,确保物体和北京分割出图层 二、右键单击物体图层,点击混合选项,点击投影 三、调整参数,可以看效果决定(距离是高度,扩展是浓度,大小是模糊程度),保存即可

实用软件下载:CrossOver 2024最新安装包及详细安装教程

​根据软件大数据显示上传或者手动输入软件都非常简单,一般来说CrossOver会自动连接到一个Win文件共享服务器(Samba或CIFS)上,使用者能够直接在这个服务器中选择并上传软件执行文件。实际上我们可以这样讲调整CrossOver设置&#…

汽车数据应用构想(五)

如果说路面信息(POI)可以通过采集车、人工等方式来获取,用户习惯可以通过手机生态应用来获取,那么车的信息应该算是车辆独有的垂直领域价值了,它是实实在在只有车厂才拥有的数据财富,任何互联网大厂都抢不走…

如何使用mapXplore将SQLMap数据转储到关系型数据库中

关于mapXplore mapXplore是一款功能强大的SQLMap数据转储与管理工具,该工具基于模块化的理念开发,可以帮助广大研究人员将SQLMap数据提取出来,并转储到类似PostgreSQL或SQLite等关系型数据库中。 功能介绍 当前版本的mapXplore支持下列功能…

一条Redis命令是如何执行的?

一条Redis命令是如何执行的? 源码结构核心数据结构redisServerredisClientredisDbredisObjectaeEventLoop 核心流程redis启动流程main() 主循环aeEventProcess执行过程命令执行的流程过程1(redis启动)过程2(客户端与服务端建立链接…

【Android】Android Studio 使用Kotlin写代码时代码提示残缺问题解决

问题描述 Android Studio升级之后,从Android Studio 4.2升级到Android Studio Arctic Fox版本,因为项目比较老,使用的Gradle 版本是3.1.3,这个版本的Android Studio最低支持Gradle 3.1版本,应该算是比较合适的版本。 …

不翻墙安装yolov8环境下的RT-DETR并实现PCB表面缺陷检测

目录 一、新建conda环境二、安装yolov8环境1.克隆安装包2.安装依赖包3.测试模型 任务2:基于RT-DETR实现PKU-PCB表面缺陷检测数据准备 数据增强测试 总结 一、新建conda环境 创建并激活conda环境: 在conda创建一个名为yolov8的新环境,并在其中…

国际网络专线的开通流程

1. 选择服务商:首先,您需要选择一个可靠的服务商来提供国际网络专线服务。确保服务商具有良好的声誉和专业知识,以便为您提供高质量的网络连接和支持。 2. 评估需求:在与服务商沟通之前,您需要明确自己的网络需求。这…

dp经典问题:LCS问题

dp:LCS问题 最长公共子序列(Longest Common Subsequence, LCS)问题 是寻找两个字符串中最长的子序列,使得这个子序列在两个字符串中出现的相对顺序保持一致,但不要求连续。 力扣原题链接 1.定义 给定两个字符串 S1…

猫狗识别—视频识别

猫狗识别—视频识别 1. 导入所需的库:2. 创建Tkinter主窗口并设置标题:3. 设置窗口的宽度和高度:4. 创建一个Canvas,它将用于显示视频帧:5. 初始化一个视频流变量cap,用于存储OpenCV的视频捕获对象&#xf…

【速速收藏】适用于Linux系统的五个优秀PDF编辑器

PDF (Portable Document Format) 是便携文档格式的缩写,这是一种用于电子共享文档的标准格式,广泛应用于各种文档类型的存储和分发。然而,有时我们可能需要对PDF文档进行更改和编辑。本文将介绍五款在Linux平台上广受欢迎的PDF编辑器。 ​​…

陀螺仪LSM6DSV16X与AI集成(8)----MotionFX库解析空间坐标

陀螺仪LSM6DSV16X与AI集成.8--MotionFX库解析空间坐标 概述视频教学样品申请源码下载开启CRC串口设置开启X-CUBE-MEMS1设置加速度和角速度量程速率选择设置FIFO速率设置FIFO时间戳批处理速率配置过滤链初始化定义MotionFX文件卡尔曼滤波算法主程序执行流程lsm6dsv16x_motion_fx…

【分布式事务】Seata AT实战

目录 Seata 介绍 Seata 术语 Seata AT 模式 介绍 实战(nacos注册中心,db存储) 部署 Seata 实现 RM 实现 TM 可能遇到的问题 1. Seata 部署成功,服务启动成功,全局事务不生效 2. 服务启动报错 can not get …

[java]集合类stream的相关操作

1.对list中的map进行分组 下面例子中&#xff0c;根据高度height属性进行分组 List<Map<String, Float>>originalList new ArrayList<>();originalList.add(new HashMap<String,Float>() {{put("lng", 180.0f);put("lat",90f);…

C++使用Poco库封装一个FTP客户端类

0x00 Poco库中 Poco::Net::FTPClientSession Poco库中FTP客户端类是 Poco::Net::FTPClientSession , 该类的接口比较简单。 上传文件接口&#xff1a; beginUpload() , endUpload() 下载文件接口&#xff1a; beginDownload() , endDownload() 0x01 FTPCli类说明 FTPCli类…

CSS规则——font-face

font-face 什么是font-face&#xff1f; 想要让网页文字千变万化&#xff0c;仅靠font-family还不够&#xff0c;还要借助font-face&#xff08;是一个 CSS 规则&#xff0c;它允许你在网页上使用自定义字体&#xff0c;而不仅仅是用户系统中预装的字体。这意味着你可以通过提…

jemeter基本使用

后端关验签&#xff0c;设置请求头编码和token 配置编码和token