最近发现了一款非常强大的 EDA 开发工具,它甚至有些颠覆我对RTL开发Flow的认知。国产EDA 工具能达到这样的水准,实在令人惊叹。 在此,特别感谢为该 GitHub 项目付出心血的开发者!接下来,我将简要介绍它的使用方法,欢迎大家一起探索,共同挖掘这款工具的更多潜力! 简称为 DIDE 是一个给数字开发工作者提供的友好便捷的自研开发工具。 DIDE可以基于VSCode插件运行在常规的所有平台上。 以下是这款工具的主要功能概述,接下来我将带大家完成安装,并尝试其中的一些核心功能,体验它如何提升 EDA 开发效率。 安装最新版VSCode DIDE不同于其他EDA工具,它无需繁琐的前置环境配置,只需一键安装,即可获得完整的开发环境。 搜索DIDE安装即可 默认会安装全套环境,如果网络不好可能需要手动安装LSP 离线或者其他安装问题可查看DIDE官网安装: 具体的启动方式可以参考 DIDE官方网站,上述内容仅介绍了最简单的启动方式。如果需要更高级的配置或个性化设置,建议查看官方文档,以充分发挥 DIDE 的强大功能 DIDE兼容了这些诊断工具,它们的基本信息和对各个HDL 语言的支持情况如下表。 打开插件设置,设置我们自己的诊断工具 如果是windows用户可能需要设置vivado或者modelsim的bin路径 点击左侧文件夹,可以看到当前代码的大纲 当我们的鼠标放在调用的模块或信号上,会出现该模块的提示,用于展示这些变量的上下文。 snippet 补全(代码片段补全)是 vscode 自带的一种补全方式,由插件和用户所提供的 snippet 共同组成。用户定义常用代码的模板,vscode 会自定根据前缀把这个模板补全添加到自动补全列表中。 DIDE 提供了 verilog 和 vhdl 的常用模板,在本插件的 snippet 中补充了一些常用设计组件,如申明模块、边沿提取、计数器、简单状态机模板等逻辑 只要打出你想要例化的模块名(可自动关联)就能将该模块的例化自动补充出来。 在0.4.0版本之后,插件包含了xilinx以及efinix的所有原语的例化,同时给出相应的注释,再也不用到vivado中的language template里面进行复制。 更详细的应用案例可查看官网: 代码设计中的“定义跳转”(Definition Jump 或 Go to Definition)功能是一种快速导航工具,允许用户快速在编辑器中跳转到对应变量的定义的位置上。 按住 ctrl 键(MAC cmd键),再鼠标左击标识符,便可进行跳转,效果可查看官网视频: 可以对选中的字符或者全文进行文档的格式化 vscode自带快捷键打开方式: 支持vhdl转Verilog的翻译功能,以下是他的效果视频: Inlay Hints 是一项新的 IDE 技术,用于在文本编辑器中渲染行间文本,用于进行提示。 通过文档化,你可以快速了解当前 verilog 或者 vhdl 文件中 module 的基本信息和依赖信息。依赖信息也支持跳转。 Wavedrom 是一种用于绘制数字时序图的工具,特别适合硬件设计和数字电路仿真。使用简单的 JSON 格式来描述波形,并能在浏览器中实时渲染。 DIDE还有很多的功能,如VCS波形查看 如果想深入了解更多细节,建议参考官方文档,其中提供了详细的中文说明,内容清晰易懂: 相较之下,现有的 RTL 开发 Flow 显得不够“新”,而这款工具带来了更新颖的开发体验。近年来,随着国产化浪潮的推进,相信未来会有更多类似的EDA工具以及国产软件和硬件产品百花齐放,从最初对国产工具的存疑,到如今它们不断推陈出新、突破技术壁垒,我们可以预见,国产化的道路正越走越稳,越来越好。 类似的EDA工具,只有使用的人越来越多,社区生态才能不断发展,工具本身也会变得越来越完善。希望各位读者朋友多多分享和推广这类优秀的国产工具,让更多开发者受益,共同推动国产EDA生态的进步!前言
介绍
Digital IDE
借助规范的、简化的、可视的工程管理系统、IP管理系统以及丰富的辅助组件,帮助下游的开发者能够满足研发过程中敏捷开发、验证以及团队协作等需求。对于上游,帮助FPGA原厂降低软件开发生态的扩展和维护成本。适用平台
现有功能
1.语言服务
2.项目管理
工程搭建类
仿真搭建类
设计辅助类
安装
1.安装前准备
https://code.visualstudio.com/
2.安装DIDE插件
安装
LSP安装
打开 vscode,按下 F1
,输入 download
后,找到下图这个指令:其他问题
https://nc-ai.cn/article/60esc87p/#%E4%BB%8E-vscode-%E5%AE%89%E8%A3%85
使用
一、文件夹启动
1.用VSCode打开对应RTL工程的文件夹
2.找到DIDE图标
3.设置你的top文件
4.启动方式
https://nc-ai.cn/article/40pehd2r/#%E5%8D%95%E6%96%87%E4%BB%B6%E5%90%AF%E5%8A%A8
二、语法纠错
1.设置诊断工具
这里我使用的是verilator,如果你使用vivado,选择vivado即可2.设置路径
3.实现效果
https://nc-ai.cn/videos/lsp/linter-introduction.mp4
三、文件大纲
四、悬停提示
五、自动补全及自动例化
1.代码片段补全
2.预定代码片段
如果你希望自行补充自定义的一些snippet功能,也可以自行添加,具体可查看官网CF.1自定义代码片段
3.自动例化
3.原语例化
4.查看官网
https://nc-ai.cn/article/un7eg34t/#cf-2-%E8%87%AA%E5%8A%A8%E4%BE%8B%E5%8C%96
六、自定义跳转
https://nc-ai.cn/videos/lsp/definition-common.mp4
七、代码格式化
shift + alt + f
。支持verilog和VHDL。
verilog 和 systemverilog格式化类型,支持三种类型 kr
、ansi
、gun
八、代码翻译
https://nc-ai.cn/videos/lsp/translate-common.mp4
九、Inlay Hints
1.例化模块端口
2.模块结尾申明
十、文档化
1.代码文档化
2.Wavedrom注释
DIDE 也支持了在注释中编写 Wavedrom 风格的注释,并在文档化中渲染它们。Wavedrom 注释必须写成块状注释,并且必须在块状注释的第一行写上 @wavedrom
十一、网表查看
1.点击某根连线还会有很炫酷的动画
2.还可以trace对应的信号
3.以及各种不同的设置
十二、其他功能
以及vivado工程的搭建,甚至可以通过VSCode来实现仿真,综合,执行,生成bit流等各种功能。受篇幅所限,这里就不再介绍1.vivado工作流
2.VCD波形查看
3.推荐阅读官方文档
https://nc-ai.cn/
写在最后