最精简的VScode Verilog RTL开发环境搭建教程

news2024/12/23 19:55:19

【2024-9月更新】最精简的VScode Verilog RTL开发环境搭建教程


文章目录

  • 【2024-9月更新】最精简的VScode Verilog RTL开发环境搭建教程
  • 一、官网下载VScode
  • 二、登录账号同步
  • 三、安装配置拓展插件
    • 1.Verilog-HDL/systemVerilog拓展
    • 2.安装Universal Ctags
      • ● Windows系统安装universal ctags
      • ● Linux主流发行版安装universal ctags
    • 3.配置Verilog-HDL拓展的相关参数
      • ● ctags PATH
      • ● linter(语法检查工具)
  • 最终效果

【2024更新说明】:

本人前一版本(写于2023年)的文档过于繁琐,经过大量精简和错误修正之后,重新整理了这个版本。

*支持Verilog,systemVerilog语法

*精简了大量内容,只需一个插件就能使用

一、官网下载VScode

此步骤略。

二、登录账号同步

如果还从未使用过vscode可以暂时跳过此步。

具体操作略。


三、安装配置拓展插件

vscode本身是不支持Verilog语言开发的,要想在vscode中愉快地编写RTL,只需要安装一个插件

其他的插件都不用安装,其余的要么没用,要么锦上添花(看个人喜好)。

1.Verilog-HDL/systemVerilog拓展

搜索安装此插件:

在这里插入图片描述

这个插件提供了Verilog开发环境的绝大多数基础功能,例如:

  • 代码高亮(highlight)
  • 简单语法补全提示(snippets)
  • 静态语法检查(lint,需要自行配置linter组件)
  • Ctags功能集成(需要额外安装ctags组件)
    • 自动补全
    • 文档符号大纲
    • 鼠标悬停显示代码声明
    • CTRL鼠标点击跳转到代码声明
    • 自动实例化模块
  • Language server(实验性功能)
  • 代码自动格式化(formatting,实验性功能)

这个插件虽然是vscode拓展市场下载量最高的插件,但是部分功能仍然残缺不全,很多高级功能无法开箱即用,需要我们进一步配置(这个细节配置将在后文详细介绍。)

2.安装Universal Ctags

这是Verilog-HDL/systemVerilog拓展的依赖组件,其用途是解析工作区的文档,获取关键词目录,给vscode上下文关键词参考。

在这里插入图片描述

如图所示,这个插件依赖于 universal ctags ,在该插件的详情页有各种操作系统的ctags安装网址,对应自己的操作系统选择对应的安装方式即可。

特别注意: Verilog-HDL/SystemVerilog插件只兼容universal ctags ,并不兼容其他的ctags实现!!!

如果安装完以后,发现出现ctags索引不全,大概率安装的ctags并非这里所说的universal ctags

● Windows系统安装universal ctags

点击插件Verilog-HDL/SystemVerilog/Bluespec SystemVerilog详情页中的:

在这里插入图片描述

进入该网址,从release page选择最新版下载:

在这里插入图片描述

在这里插入图片描述

下载到本机,建议解压到一个不含空格和特殊字符的纯英文路径,例如:

在这里插入图片描述

然后将路径添加到Windows系统环境变量中的Path中,以我为例:
在这里插入图片描述

打开cmd终端,输入ctags --version,观察输出是否正常:
在这里插入图片描述

出现对应的版本信息,特别注意显示的ctags信息是universal ctags,说明安装正常,顺利结束。


● Linux主流发行版安装universal ctags

打开对应的下载官网:

在这里插入图片描述
在这里插入图片描述

  • 如果你使用的Linux发行版版本较新,例如Ubuntu较新的版本,或者是Fedora较新的版本,则可以直接通过系统内置的包管理器apt install 或者dnf install。这个是最省事的。首选推荐方案!
  • 如果你用的Linux发行版是较老的centOS或者其他不带apt或dnf工具的Linux版本,那么需要从源码安装universal ctags
    • 特别注意:yum包管理器不行!!!!

从源码安装universal ctags参考官方最上面的教程:

$ git clone https://github.com/universal-ctags/ctags.git
$ cd ctags
$ ./autogen.sh
$ ./configure --prefix=/where/you/want # defaults to /usr/local
$ make
$ make install # may require extra privileges depending on where to install

注意,最后两步骤makemake install请务必在root权限下执行(加上sudo执行)!

在make install安装完成之后,ctags可执行文件将生成于$prefix/bin/路径下。默认为/usr/local/bin/ctags

同样,安装完成之后(没报错),随意在任何一个路径下打开终端,输入ctags --version观察回显是否正常。

在这里插入图片描述


3.配置Verilog-HDL拓展的相关参数

● ctags PATH

在这里插入图片描述

由于前面我们安装universal ctags的时候添加了系统环境变量,因此这里只需要填入“ctags”即可。

● linter(语法检查工具)

在这里插入图片描述

该插件支持以上静态语法检查工具( 需要额外安装对应的软件 ),在Windows上 笔者推荐使用Xilinx vivado自带的xvlog ,在Linux上笔者推荐开源的轻量级iverilog(或者也用Linux端的vivado自带的xvlog)。

最后特别注意:linter工具只会在保存(CTRL+S)之后进行语法检查,因此,在编写源码的过程中没有红色波浪线提示,是正常的,如果你需要立刻进行一次语法检查,可以立即保存一次,或者通过rerun lint tool命令强制执行一次。
在这里插入图片描述




最终效果

如下图:
在这里插入图片描述


在这里插入图片描述



@tsukimi 2024

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

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

相关文章

(附源码) Springboot 飞速物流管理平台78584

摘要 受疫情的影响,很多城市处于静默的状态,导致店铺很多店铺都处于关闭的状态,给商家带来了极大的损失,很多商家为了减少损失都通过线上进行销售,比如直播、微商等;同时对于消费者来说,网上购买…

【Redis】分布式锁之 Redission

一、基于setnx实现的分布式锁问题 重入问题:获得锁的线程应能再次进入相同锁的代码块,可重入锁能防止死锁。例如在HashTable中,方法用synchronized修饰,若在一个方法内调用另一个方法,不可重入会导致死锁。而synchroni…

mysql练习题使用的表

dept(部门表):部门编号,部门名字,部门地点 salgrode工资等级表:等级,最高工资,最低工资 emp表:员工编号,员工名字,工作,领导编号MGR,入职时间,工…

Spring Boot 整合MyBatis-Plus 实现多层次树结构的异步加载功能

文章目录 1,前言2,什么是多层次树结构?3,异步加载的意义4,技术选型与实现思路5,具体案例5.1,项目结构5.2,项目配置(pom.xml)5.3,配置文件&#xf…

c++难点核心笔记(二)

系列文章目录 c难点&核心笔记(一) 继续接着上一章记录的重点内容包括函数,类和对象,指针和引用,C对象模型和this指针等内容,继续给大家分享!! 文章目录 系列文章目录友元全局函数做友元类做友元成员函…

国庆节怎么利用PHP发送文字短信

国庆节作为中国重要的法定节假日之一,不仅是全民欢庆的时刻,也是商家们进行促销活动的黄金时期。发送营销短信成为许多商家吸引顾客、提高销量的重要手段。 支持免费对接试用乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件…

分布式事务(1)

1.分布式事务 首先我们看看项目中的下单业务整体流程: 由于订单、购物车、商品分别在三个不同的微服务,而每个微服务都有自己独立的数据库,因此下单过程中就会跨多个数据库完成业务。而每个微服务都会执行自己的本地事务: 交易服…

Python办公自动化教程(002):PDF的拆分与合并

1、PyPDF2 介绍 介绍: PyPDF2是一个用于处理PDF文件的Python库,它提供了丰富的功能来读取、编辑、合并、拆分PDF文档,以及提取文本、图像和其他内容。 功能: 读取PDF:PyPDF2可以轻松地打开和读取PDF文件,获…

pytorch 神经网络模型 2D+3D 可视化,这个工具库够猛!

生信碱移 torch模块可视化 小编近期冲浪的时候发现一个torch模型架构可视化的神级python库VisualTorch,给各位铁子分享一下doge。 VisualTorch旨在帮助可视化基于Torch的神经网络架构,似乎是今年才上传到github上。它目前支持为PyTorch的Sequential和Cu…

jQuery——jQuery的2把利器

1、jQuery 核心函数 ① 简称:jQuery 函数,即为 $ 或者 jQuery ② jQuery 库向外直接暴露的是 $ 或者 jQuery ③ 引入 jQuery 库后,直接使用 $ 即可 当函数用:$(xxx) 当对象用:$.xxx&#x…

华为官宣,不支持安卓应用的纯血鸿蒙终于来了

华为前不久与苹果新品发布会撞车的全球首款量产三折叠屏幕手机 Mate XT,本以为已是其下半年狠活儿担当。 但直到看完昨天下午的华为秋季全场景发布会才发现,好家伙,此前那都叫小打小闹,原来大招全搁在后头呢! 这场近两…

蒙语学习快速方法,速记蒙语单词怎么学习更高效!

要高效学习蒙古语和速记单词,首先要掌握基础知识,如字母表和发音规则。接着,专注于学习日常用语和基础词汇,并运用记忆技巧如联想、发音和构词法来帮助记忆。利用专门的学习软件,如“蒙语学习通”,可以提供…

进程间通信 (一)【管道通信(上)】

目录 1. 概况2. 管道通信的原理2.1 初步理解2.2 深入理解 1. 概况 是什么:两个及以上的进程实现数据层面的交互,称为进程间的通信。 因为进程独立性的存在,所以一个进程无法直接访问另一个进程的数据,即便是父子进程,子…

数字IC设计\FPGA 职位经典笔试面试整理--基础篇2

1. 卡诺图 逻辑函数表达式可以使用其最小项相加来表示,用所有的最小项可以转换为卡诺图进行逻辑项化简 卡诺图讲解资料1 卡诺图讲解资料2 卡诺图讲解资料3 最小项的定义 一个函数的某个乘积项包含了函数的全部变量,其中每个变量都以原变量或反变量的形…

从传统到智能:低代码平台在生产型企业中的应用实践

在全球数字化浪潮的推动下,生产型企业正面临前所未有的变革压力。为了在激烈的市场竞争中保持竞争力,企业迫切需要通过技术手段实现业务流程的优化和创新。然而,传统的软件开发方式往往耗时耗力,难以快速响应市场需求。低代码平台…

一些依赖库的交叉编译步骤

交叉编译链版本:12.3.0 一、curl-7.43.0库交叉编译 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传&a…

Django学习实战篇六(适合略有基础的新手小白学习)(从0开发项目)

前言: 上一章中,我们完成了页面样式的配置,让之前简陋的页面变得漂亮了些。 整理一下目前已经完成的系统,从界面上看,已经完成了以下页面: 首页分类列表页标签列表页口博文详情页 这离我们的需求还有些距离&#xff0…

哪款手机软件适合记事?记事本软件推荐

在这个信息爆炸的时代,手机已经成为我们生活中不可或缺的一部分。它不仅携带方便,而且功能强大,几乎可以完成我们日常所需的所有任务。随着生活节奏的加快,人们越来越需要一个可靠的工具来帮助自己记录重要信息和工作事项。这时候…

德勤校招网申笔试综合能力测试SHL题库与面试真题攻略

德勤的综合能力测试(General Ability)是其校园招聘在线测评的关键环节,旨在评估应聘者的多项认知能力。以下是对这部分内容的全面整合: 综合能力测试(General Ability) 测试时长为46分钟,包含…

ORA-12560:TNS:协议适配器错误

今天准备在数据库服务器创建一个用户,使用管理员账号进行登录 sqlplus / as sysdba时,突然报了个ORA-12560:TNS:协议适配器错误,吓的我一激灵,不应该啊,之前一直都是正常的,也是在网…