FPGA终于可以愉快地写代码了!Vivado和Visual Studio Code黄金搭档

news2024/12/22 19:55:37

如果你是一位FPGA开发者,那么你一定会对VIvado这款软件非常熟悉。但是,对于vivado兼容的第三方编辑器软件,你知道Visual Studio Code吗?这是个非常不错的选择,Visual Studio Code搭配众多插件,能让你FPGA开发如虎添翼,效率飞升!别犹豫了,赶紧来看看本文,把这款神器装起来吧!

Visual Studio Code搭配插件,可实现verilog纠错、画波形图、变量定义跳转等功能,一起来体验吧。

一、Visual Studio Code 安装

1、下载Visual Studio Code

官网:Visual Studio Code - Code Editing. Redefined

在官网下载速度太慢,只有几十 Kb/s, 推荐网盘下载:​VSCodeUserSetup-x64-1.77.3

2、安装Visual Studio Code

点击安装exe文件,除了安装位置修改一下,其余的一直点下一步即可。

​二、Visual Studio Code中文显示设置

VSCode默认是英文语言环境,如果习惯了用中文,可以将VSCode设置成中文语言环境。

1、打开VSCode软件,按快捷键【Ctrl+Shift+P】或F1

2、在弹出的搜索框中输入【configure language】,然后选择【Configure Display Language】

​3、在选择框中选择zh-cn即可

​4、重启VSCode后界面就变成中文的了

三、常用插件推荐

输入快捷键“Ctrl + Shift +X”,打开扩展插件窗口。

1、Verilog HDL插件

输入“Verilog HDL”搜索即可,选择“Verilog-HDL/SystemVerilog/Bluespec”插件,点击安装即可。

​2、vscode-icons插件

可以让文件图标变得更加美观

​3、TCL Language Support

支持约束文件的语法高亮

​4、绘波形图插件

Waveform Render可以在vscode中写一些代码实时生成对应的时序图了,官网教程:“Hitchhiker's Guide to the WaveDrom”。

创建一个test.txt文件

ctrl + shit + p 或F1 搜索toggle Live preview 可以打开和关闭实时预览。

编辑完指令后,回车即可自动显示

应用示例:

{ signal: [
{ name: "clk", wave: "p.....|..." },
{ name: "clk", wave: "10101010101" },
{ name: "cnt", wave: ".12345=.x", data: ["0", "1", "2", "3","4"] },
{ name: "脉冲1", wave: "0..10.|..." },
{ name: "脉冲2", wave: "0...10.|..." },
]}

5、绘画流程图Draw.io插件

这个可以来画点流程图和结构图。先创建一个后缀名为 .drawio的文件,然后用vscode打开,就可以进行图形的绘制了。

四、vscode实现HDL编写实时纠错与自动补全等功能

1、 实现代码实时纠错

(1)将vivado目录下的xvlog路径添加到系统环境变量中

 

​(2)用快捷键“Ctrl + ,”,打开VSCode的设置中,选择xvlog;

​(3)重启VSCode即可

2、实现实例化模块与定义的跳转

(1)下载ctags,网盘下载:ctags_x64。

(2)将下载ctag文件解压缩到C盘,并将ctags.exe所在文件夹设置到系统环境变量中,类似xvlog。

(3)用快捷键“Ctrl + ,”,打开VSCode的设置中,填入ctags即可;

(3)重启VSCode即可

3、开启自动保存功能

用快捷键“Ctrl + ,”,打开VSCode的设置中

​五、总结

本文详细介绍了Visual Studio Code的安装和好用的插件推荐,可以极大提升FPGA开发效率,实测非常高效,可以愉快的写代码了。


本文将不断定期更新中,点⭐️赞,关⭐️注,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

你的支持是我持续创作的最大动力!如果本文对你有帮助,请给一个鼓励,谢谢。


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

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

相关文章

【SpringBoot】一:SpringBoot的基础(下)

文章目录 1.外部化的配置1.1 配置文件基础1.1.1 配置文件格式1.1.2 application文件1.1.3 application.properties1.1.4 application.yml1.1.5 environment1.1.6 组织多文件1.1.7多环境配置 1.2 绑定Bean1.2.1 简单的属性绑定1.2.2 嵌套Bean1.2.3 扫描注解1.2.4 处理第三方库对…

【移动端网页布局】移动端网页布局基础概念 ② ( 视口 | 布局视口 | 视觉视口 | 理想视口 )

文章目录 一、视口1、布局视口 ( 网页大小 | 网页大小 > 设备大小 )2、视觉视口 ( 设备大小 | 网页大小 > 设备大小 )3、理想视口 ( 网页大小 设备大小 ) 一、视口 浏览器 显示 网页页面内容 的 屏幕区域 被称为 " 视口 " ; 视口分为以下几个大类 : 布局视口…

项目协同中的git

在远程代码仓库(云效,gitee,github,Coding等)新建一个代码库, 我使用的云效 新建一个develop分支,后续所有人的提交代码都合并到develop分支上面,一般develop分支是用来开发用的&…

尚融宝22-提交借款申请

目录 一、需求介绍 二、图片上传 (一)前端页面 (二)实现图片上传 三、数据字典展示 (一)后端 (二)前端 四、表单信息提交 (一)后端 1、VO对象&…

嵌入式工程师如何快速的阅读datasheet的方法

目录 ▎从项目角度来看datasheet ▎各取所需 ▎最后 Datasheet(数据手册)的快速阅读能力,是每个工程师都应该具备的基本素养。 无论是项目开始阶段的选型还是后续的软硬件设计,到后期的项目调试,经常有工程师对着英…

06-Node.js—模块化

目录 1、介绍1.1 什么是模块化与模块 ?1.2 什么是模块化项目 ?1.3 模块化好处 2、模块暴露数据2.1 模块初体验2.2 暴露数据2.2.1 module.exports value2.2.2 exports.name value 3、导入(引入)模块4、导入模块的基本流程5、CommonJS 规范参考 1、介绍…

使用RabbitMQ的手动接收模式:消息第二次入队Failed to declare queue

问题&#xff1a;在rabbitMQ测试使用手动接收模式时发生 Failed to declare queue错误 : Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code406, reply-textPRECONDITION_FAILED - unknown delivery tag 1, class-id60, method-id80…

C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

绪论 从本章开始我们正式进入到C的内容&#xff0c;对此如果没有学习过C语言的建议先将C语言系统的学习一遍后再来&#xff08;已经更新完在专栏就能看到&#xff09;。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#…

Linux运维基础

一.vim编辑器 1.编辑器介绍 vi/vim是visual interface的简称,是Linux中最经典的文本编辑器&#xff0c;同图形化界面中的文本编辑器一样&#xff0c;vi是命令行下对文本文件进行编辑的绝佳选择&#xff0c;粗暴理解相当于windows下的记事本。 vim是vi的加强版本,兼容vi的所有…

java版UWB人员定位系统源码,提供位置实时显示、历史轨迹回放、电子围栏、行为分析、智能巡检等功能

运用UWB定位技术开发的人员定位系统源码 文末获取联系&#xff01; 本套系统运用UWB定位技术&#xff0c;开发的高精度人员定位系统&#xff0c;通过独特的射频处理&#xff0c;配合先进的位置算法&#xff0c;可以有效计算复杂环境下的人员与物品的活动信息。 提供位置实时显…

SLAM论文速递【SLAM—— DynaSLAM:动态场景中的跟踪、建图和修复—4.19(1)

论文信息 题目&#xff1a; DynaSLAM:Tracking,Mapping and Inpainting in Dynamic Scenes DynaSLAM:动态场景中的跟踪、映射和修复论文地址&#xff1a; https://arxiv.org/pdf/1806.05620.pdf发表期刊&#xff1a; IEEE Robotics and Automation Letters ( Volume: 3, Issu…

RPC一文精通

基础&#xff1a; http是基于应用层协议&#xff0c;对请求和响应进行规范包装,一次http请求就会进行一次tcp连接和断开连接&#xff0c;属于短链接 udp是异步响应&#xff0c;无需建立连接&#xff0c;就可以发送封装的IP数据包 tcp是基于传输层协议&#xff0c;并规范了三…

Python单向循环链表操作

目录 一、单向循环链表 单向循环链表图 二、单向循环链表的操作 1、判断链表是否为空 2&#xff0c;链表长度 3&#xff0c;遍历整个链表 4&#xff0c;在链表头部添加元素 5、链表尾部添加元素 6&#xff0c;在指定位置插入元素 7&#xff0c;修改指定位置的元素 8&a…

JavaSE 和 Java EE 分别是什么

Java 作为最流行的编程语言受到了许多人的喜爱&#xff0c;其在编程中的地位自不必多说。 对于许多才刚刚入门 Java 的朋友来讲&#xff0c;常常会产生这样的困惑&#xff0c;JavaEE是什么&#xff1f;JavaSE又是什么&#xff1f; Java SE Java SE 是 Java Platform, Standa…

Liunx下进程间通信

文章目录 前言1.进程间通信相关介绍2.管道1.匿名管道2.管道的原理3.通过代码来演示匿名管道4.命名管道5.命名管道的原理6.命名管道代码演示 3.System V共享内存1.共享内存原理2.相关系统接口的介绍与共享内存的代码演示3.共享内存的一些特性 4.system V消息队列与system V信号量…

依赖注入方式

Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法)构造方法 依赖注入描述了在容器中建立bean与bean之间的依赖关系的过程&#xff0c;如果bean运行需要的是数字或 字符串呢? 引用类型简单类型(基本数据类型与String) Spring就…

Primo Ramdisk内存盘工具软件

简介 Primo Ramdisk 软件的主要功能是通过独特的软件算法将物理内存模拟成一个超快速的硬盘&#xff0c;在这个虚拟硬盘上的读写操作均在内存中完成。由于物理内存的访问速度远远超过物理硬盘&#xff0c;因此虚拟硬盘具有非常高的数据读写速度&#xff0c;从而突破系统IO瓶颈&…

“SCSA-T学习导图+”系列:下一代防火墙

本期引言&#xff1a; 近年来&#xff0c;随着数字化业务带给我们高效和便捷的同时&#xff0c;信息暴露面的增加、网络边界的模糊化以及黑客攻击的产业化&#xff0c;使得网络安全事件相较以往成指数级增加。传统防火墙基于五元组的方式对进出网络的数据流量进行访问控制&…

医院影像图像科室工作站PACS系统 DICOM 三维图像后处理与重建

PACS报告系统的主要任务是通过运用不断积累诊断常用语&#xff0c;减轻出报告的劳动强度&#xff0c;并且将报告保存成电子文档以便日后查阅。在PACS的报告系统中&#xff0c;有三种不同层次的方法输入文字—“高级模板”、“分类词条”和“短语词典”。这三种方法的内容都可以…

记一次从JS到内网的横向案例

前言 前段时间参加了一场攻防演练&#xff0c;使用常规漏洞尝试未果后&#xff0c;想到不少师傅分享过从JS中寻找突破的文章&#xff0c;于是硬着头皮刚起了JS&#xff0c;最终打开了内网入口获取了靶标权限和个人信息。在此分享一下过程。 声明&#xff1a;本次演练中&#xf…