超详细-Vivado配置Sublime+Sublime实现VHDL语法实时检查

目录

一、前言

二、准备工作

三、Vivado配置Sublime

3.1 Vivado配置Sublime

3.2 环境变量添加

3.3 环境变量验证

3.4 Vivado设置

3.5 配置验证

3.6 解决Vivado配置失败问题

四、Sublime配置

4.1 Sublime安装Package Control

4.2 Sublime安装VHDL插件

4.3 语法检查工具插件SublimeLinter-contrib-xvhdl

4.4 结果验证

五、Sublime常见操作

5.1 查看已安装插件

5.2 删除插件


一、前言

    对于使用过其他IDE或编辑工具如Sublime,Vim等小伙伴,在使用Vivado时会发现自带的编辑器很不友好,如缩进功能不友好,不支持高亮显示,不支持自动补全等常用功能。因次,使用第三方编译的需求是很强,但在网上搜索了相关的博文后,发现很多不全或场景不符,在踩了能踩的坑后,终于将整个流程整明白,配置成功,下面将分享整个配置的过程,希望后面的小伙伴能避坑,配置一步到位。注:本文是针对VHDL语言进行设置的,verilog的设置存在差异,可参照文章https://blog.csdn.net/zyp626/article/details/131878425

二、准备工作

    软件准备

1、sublime安装包(版本不做要求,可自行网上下载,本人使用的是2022版)

2、Vivado(已安装),使用的是Vivado2019.1

3、操作系统window10

    关于Sublime的安装就不做说明了,傻瓜式地一键点击,Vivado也是在已安装的前提,如果没有安装需要Vivado的安装包及安装说明可参见之前的文章https://blog.csdn.net/zyp626/article/details/128357763,里面有相关安装说明,并且Vivado是安装后就已破解,无需其他破解操作。

三、Vivado配置Sublime

3.1 Vivado配置Sublime

主要是指在Vivado中将Sublime配置为默认的编辑器,此部分之前写过文章Vivado配置外部编辑器,CSDN路径: https://blog.csdn.net/zyp626/article/details/128357763。为不用跳转方便查看,也将其主要内容搬运过来。

3.2 环境变量添加

    进行配置前,需要电脑上已安装外部编辑器,并且已添加到环境变量中,因为Vivado是通过命令方式进行启用外部编辑器,环境变量设置以window10系统为例,搜索框直接输入环境变量,最上方将出现搜索结果

 

添加已安装程序的环境变量,进入“高级-》环境变量-》Administrator-》Path”

 

   在Path变量中新增,此处已添加Notepad++和sublime。需注意添加时只要到可执行程序的路径即可,不能加上可执行文件名称如Sublime_text.exe等

 

3.3 环境变量验证

    打开命令窗口,直接输入编辑器名称,按Enter键后如果能直接打开编辑器说明配置成功,否则会报错,编辑器名称通常在编辑器安装路径的bin目录下,以sublime为例,名称为sublime_text,如果只输入sublime,则提示非内部或外部命令

 

验证结果

 

3.4 Vivado设置

    以Vivado2019.1版本为例,配置路径为“Tools->Settin->Tool Settings->Text Editor”,Current Editor中设置的即为当前使用的编辑器,默认为Vivado Text Editor,表示自带的编辑器。

 

点击下拉框展示可选择项,显示了一些常用编辑器,选择的前提是电脑已安装该编辑器并且已配置环境变量。

 

    此处选择Sublime为例,点击apply,ok设置完毕,如果要确认是否设置成功可直接再次进入查看,显示为Sublime说明设置成功

 

3.5 配置验证

    设置完毕后验证是否配置成功,进入到Vivado的source目录,双击任意任意一个.v或.vhd文件,提示如下,打开失败

 

将报错信息中的命令复制到命令窗口执行,根据报错可知是命令有问题,此处原因是应用名称并非sublimetext,应为sublime_text

 

将名称修改为sublime_text后执行成功,使用sublime打开了指定文件Divider.v文件。

 

3.6 解决Vivado配置失败问题

    根据2.4可知直接配置项选择sublime存在Vivado默认的编辑器名称和实际安装的存在差异,导致打开失败。解决办法为Current Editor中设为Custom Editor,再点击方框2,弹出Custom Editor Definition设置窗口,在Editor输入命令“sublime_text +[line number] [file name]”,sublime_text表示执行程序的名称,根据实际应用安装的名称来,设置完后进行保存

查看sublime的应用名称,如此处为“sublime_text”

 

此处需只有红框3处的名称需与上述应用名称对应一致,否则就会打开失败

 

重新进入Vivado的source窗口双击xxx.v文件后,会自动使用sublime打开文件。

四、Sublime配置

    在第三部分完成了Vivado配置Sublime为外部编辑器后,接下来就是对Sublime配置。Sublime的配置总体也比较简单,其实就是需要安装2个关键性的插件:VHDL,SublimeLinter-contrib-xvhdl,VHDL用于支持VHDL语言,SublimeLinter-contrib-xvhdl用于进行语法检查

Sublime支持的插件可在网站Browse - Package Control查看。

4.1 Sublime安装Package Control

    对于之前未安装过sublime,第一次安装时,先进入Tools安装Package Control,双击install Package Control,几秒后有弹框弹出提示安装成功,安装后在Preference可看到Package Control选项。

 

安装package control后在preference查看到

 

4.2 Sublime安装VHDL插件

Sublime默认支持的Syntax语言中是没有VHDL,需安装支持VHDL语言的插件

 

此时打开VHDL的代码是不会进行语法格式检查,如下图红框有明显语法错误

 

打开Sublime,进入"Preference->Package Control"

 

    进入Package Control界面后,在后面的输入框中输入install后,下方会自动显示可选项,双击选择install package,将进入安装界面

 

   在安装界面后,输入框输入VHDL,下方会自动显示候选项,双击下方第一个“VHDL”进行安装

 

几秒中后即可完成安装,重新进入View->Syntax,此时语言中已有VHDL,说明安装成功,注:安装过程页面是没有任何变化的,容易误以为安装失败

安装后从vivado打开vhd文件仍无法识别VHDL语法,是因为没有将语言设为VHDL。

 

    ​进入View->Syntax中选择VHDL语言,然后关闭sublime。

 

    ​再次从vivado中打开vhd文件,此时已能高亮显示关键字,但如下图42行 and右侧缺少操作数是无任何提示的,因为此时无法进行语法正确性检查。

 

4.3 语法检查工具插件SublimeLinter-contrib-xvhdl

进入安装界面输入“XVHDL”查找插件SublimeLinter-contrib-xvhdl,双击插件安装包

 

安装成功后自动进入Package Control Messages文件,文件中显示安装的插件名,下图中插件名正确,说明安装成功。

 

4.4 结果验证

    在完成上述配置后,关闭sublime后重新在vivado中双击vhd文件打开,如下图示例,有两处错误,报错的位置行数左侧有红点,39行和42均存在语法错误,鼠标箭头移动到报错位置的红色小框内,会弹出浮框显示报错原因,所以语法检查插件安装成功

 

五、Sublime常见操作

5.1 查看已安装插件

有时需要查看sublime已安装的插件,进入Preference->Package Settings->Package Control->Settings

 

自动弹出新的settings窗口,右侧中installed_packages下面列出已安装的插件,此处已安装了

5个插件:"Alignment","Package Control","SublimeLinter","SublimeLinter-contrib-xvhdl","VHDL",

 

5.2 删除插件

    ​删除插件和安装插件类似,进入到package control界面后,输入remove,弹出相关候选项,单击选择第二个remove package

 

进入删除界面,此时下拉框中显示的都是已安装的插件,双击即可删除该插件

 

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

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

相关文章

STM32F4X DMA

STM32F4X DMA 什么是DMASTM32F4X DMADMA框图DMA通道DMA仲裁器DMA FIFO DMA传输模式DMA传输方向存储器到存储器存储器到外设外设到存储器 DMA循环模式和普通模式循环模式(Circular)普通模式(Normal) DMA源、目标寄存器增量模式DMA例…

React【组件生命周期 、组件生命周期_挂载、 组件生命周期_更新 、组件生命周期_卸载、表单_受控组件、表单_受控组件处理多个输入】(三)

文章目录 组件生命周期 组件生命周期_挂载 组件生命周期_更新 组件生命周期_卸载 表单_受控组件 表单_受控组件处理多个输入 组件生命周期 每个组件都有自己的生命周期,从“生”到”死“。 在这个过程当中,它会有不同的状态,针对不同的状态…

大型语言模型的幻觉研究|减轻及避免大模型LLM幻觉(二)

“ 本文及上一篇综述了最近关于语言模型中幻觉问题的研究进展,主要集中在ChatGPT发布后的研究。文章讨论了如何评估、追踪和消除幻觉,并探讨了现有挑战和未来方向。希望本文能为对LLM幻觉问题感兴趣的朋友提供有价值的资源,促进LLM的实际应用…

【数学建模竞赛】超详细Matlab二维三维图形绘制

二维图像绘制 绘制曲线图 g 是表示绿色 b--o是表示蓝色/虚线/o标记 c*是表示蓝绿色(cyan)/*标记 ‘MakerIndices,1:5:length(y) 每五个点取点(设置标记密度) 特殊符号的输入 序号 需求 函数字符结构 示例 1 上角标 ^{ } title( $ a…

Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私

1. 引言 Aztec的架构,不同于当前“通过EVM兼容执行环境”所实现的区块链水平扩容趋势。Aztec内部笑称其构建的为首个非zkEVM协议。 Aztec专注于实现: 成为理解和需要智能合约隐私的开发者的终极解决方案。 Aztec为开发者提供构建隐私优先app所需的网…

Java 复习笔记 - 面向对象进阶篇

文章目录 一,Static(一)Static的概述(二)静态变量(三)静态方法(四)工具类(五)static的注意事项 二,继承(一)继…

TortoiseSVN 详细操作指南

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 热爱技术的小郑 1、引言 考虑以下几种情况: 你是否在一个…

Nginx详解 五:反向代理

文章目录 1. 正向代理和反向代理1.1 正向代理概述1.1.1 什么是正向代理1.1.2 正向代理的作用1.1.3 正向代理的基本格式 1.2 反向代理概述1.2.1 什么是反向代理1.2.2 反向代理可实现的功能1.2.3 反向代理的可用模块 2. 配置反向代理2.1 反向代理配置参数2.1.1 proxy_pass2.1.2 其…

华为云云耀云服务器L实例评测|老用户回归的初印象

华为云云耀云服务器L实例评测|老用户回归的初印象 前言一、新面孔1. 云耀云服务器2. 服务器特色 二、上手感官体验1. 性价比感受2. 推荐宝塔面板3. CloudShell登录4. 安全性 总结 前言 其实笔者接触华为云已经很久了,第一次使用的云服务器就是华为云。当…

C# 反射机制

图片来自:https://www.cnblogs.com/tangge/p/3440605.html

探索多态的本质【C++】

文章目录 多态的构成条件虚函数虚函数的重写(覆盖) 虚函数重写的两个例外C11 override和final区分重载、覆盖(重写)、隐藏(重定义)抽象类接口继承和实现继承多态的原理虚函数表 动态绑定和静态绑定动态绑定静态绑定 单继承中的虚函数表多继承中的虚函数表…

视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛,包括智慧工地、智慧工厂、智慧校园、智慧社区等等。 …

Ubuntu20.04同时安装ROS1和ROS2

Ubuntu20.04同时安装ROS1和ROS2 Excerpt 每版的Ubuntu系统版本都有与之对应ROS版本的,每一版ROS都有其对应版本的Ubuntu版本,不可随便装,ubuntu20.04对应ROS1 noetic和ROS2 foxy版本。_ros1和ros2共存 Ubuntu20.04同时安装ROS1和ROS2共存 文…

Vue+NodeJS+MongoDB实现邮箱验证注册、登录

一.主要内容 邮件发送用户注册用户信息存储到数据库用户登录密码加密JWT生成tokenCookie实现快速登录 在用户注册时,先发送邮件得到验证码.后端将验证进行缓存比对,如果验证码到期,比对不正确,拒绝登录;如果比对正确,将用户的信息进行加密存储到数据库. 用户登录时,先通过用…

[H5动画制作系列] Sprite及Text Demo

参考代码: sprite.js: var canvas, stage, container; canvas document.getElementById("mainView"); function init() {stage new createjs.Stage(canvas);createjs.Touch.enable(stage);var loader new createjs.LoadQueue(false);loader.addEventListener(&q…

Docker的开源容器镜像仓库Harbor安装

概述 Docker Hub是Docker官方提供的在线Docker镜像注册中心,其支持Docker镜像的查询(search)、提交(push)以及获取(pull)。目前,在云原生领域中,CNCF提供Harbor开源版本…

创建开机自启的脚本

在启动许多ros节点时有多种方式,我推荐使用launch来启动所有的节点,这也是一种规范的方式。以后会慢慢向这个方向靠。 除此之外还可以通过创建的脚本来启动: 脚本位置不限,只需要: sudo gedit xxx.sh在里面添加相应的…

UI设计师的发展前景是否超越了平面设计?

这是一个现代经济学的典型话题:应该跟随趋势追逐风口,还是坚守成熟的“夕阳产业” UI 设计行业发展短短不过 20 多年,但平面设计这个“夕阳产业”最早可以追溯到上世纪的二三十年代。显而易见的答案是,更新兴的 UI 设计师得到的好…

C语言_指针(1)

文章目录 前言一、指针数组1.1利用指针数组模拟出二维数组 二、数组指针2.1数组名是数组首元素的地址2.2 二维数组传参2.3 一级指针传参2.4 二级指针传参 三. 函数指针四 . typedef 重命名 前言 指针数组是由指针组成的数组。它的每个元素都是一个指针,可以指向任何…

java并发编程 ConcurrentLinkedQueue详解

文章目录 1 ConcurrentLinkedQueue是什么2 核心属性详解3 核心方法详解3.1 add(E e)3.2 offer(E e)3.3 poll()3.4 size()3.5 并发情况分析 4 总结 1 ConcurrentLinkedQueue是什么 ConcurrentLinkedQueue是一个无界的并发队列,和LinkedBlockingQueue相比&#xff0c…