ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

HDLProject

Andrew Carter ST3 缺失

适用于Sublime Text的VHDL和Verilog IDE

标签 vhdl, verilog, fpga

详细信息

  • 1.5.3
  • github.​com
  • github.​com
  • 1年前
  • 12个月前
  • 9年前

安装次数

  • 总数 3K
  • Win 2K
  • Mac 338
  • Linux 615
8月7日 8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

HDLProject是一款适用于Sublime Text 4的Verilog和VHDL IDE。


功能

  • 简化项目创建
  • 镜像FPGA项目
  • 使用可靠的FPGA工具进行实时的本地或远程语法检查
  • 并排显示层次结构和文件系统
  • 任何定义的悬浮窗提示
  • ChatGPT集成
  • 加速项目导航
  • 多任务处理,支持多个窗口/项目
  • 与Vivado和Quartus集成构建
  • 在Windows/Linux/macOS上编写代码
  • 获取编译顺序以供其他设计工具使用(例如Modelsim)
  • 许可证不是按节点锁定或时间限制的

网页

https://hdlproject.com

https://packagecontrol.sublime.net.cn/packages/HDLProject

https://bitbucket.org/bootsiaz/sublime-hdlproject/overview

工作流程

项目创建

对于FPGA开发,您可以简单地使用fpga_project_file来指向您的FPGA项目的文件或路径。不需要其他项目设置。

或者,您可以使用示例脚本之一,通过双击文件(或在Linux上右击并选择运行程序)来打开或创建一个项目。

否则,您可以将特定文件或文件夹添加到项目中。请参阅示例设置文件。

在Windows上,请确保已启用Windows开发者模式以使用此插件。

对于项目创建的任何问题,请通过[email protected]与我联系。

项目导航

创建的目录结构是一个存放于自定义输出路径的符号链接文件树。如果未定义,它将在Windows上的**$TEMP/sublime_hdl_project**,或在macOS和Linux上的**~/.sublime_hdl_project**中创建。

创建的项目被分为“层次结构”和“库”目录。其中“层次结构”包含层次化RTL,“库”包含原始源文件夹。您可以通过侧边栏的在侧边栏文件系统中显示在侧边栏层次结构中显示命令快速在不同文件的层次结构和其源文件夹之间跳转,您可以通过在侧边栏中右键点击文件时弹出的上下文菜单访问这些命令。

悬停定义

当项目进入内存后,当将鼠标悬停在任何端口、信号、寄存器、线、常量、通用项、参数、定义、局部参数、实例、变量、类型、子类型、使用包或包含语句上几秒钟时,将出现一个弹出窗口。这可以通过ctrl+shift+l(macOS上的cmd+shift+l)禁用。

弹出窗口允许在活动文件和项目内部快速导航。例如,将鼠标悬停在信号上将提供有关其定义的链接以及到定义的链接。文件内部的赋值(输入)链接也提供了。

当将鼠标悬停在模块实例或包/包含语句上时,也提供了导航链接,它提供了文件预览以及跳转到该文件的任何行的功能。

实时语法检查

语法检查需要安装第三方工具,并使用带有syntax_tool_path设置的指定位置。如果没有定义,它将尝试使用build_tool_path。支持的工具在示例用户设置文件中列出。《check_syntax_on_save》设置将在HDL项目窗口中任何VHDL或Verilog文件保存时调用语法检查线程。

错误数量将显示在状态栏中。您可以通过使用<go_to_prev_syntax_error>和<go_to_next_syntax_error>命令在项目中导航语法错误。任何错误相关的行左侧的空白处放置一个点。将鼠标悬停在点上将提供来自语法日志的错误消息。要查看语法日志,请启用<check_syntax_panel>设置。请注意,与其他大多数工具一样,语法检查仅在活动项目中有效。

现在也支持远程语法检查。这样,例如,您可以在MacOS上编码并实时语法检查每个保存。请使用带有远程路径的syntax_tool_path,例如。

"[email protected]:/home/ubuntu/xilinx/Vivado/2019.2/bin"

需要remote_project_path设置来设置您的远程机器上的文件路径,其中您的文件将被复制。您可以使用exclude_dirs来加快处理速度。还有aws_pem_key设置,用于SSH连接,它在AWS EC2上进行了测试(但也可能在其他云服务上有效)。

ChatGPT集成

HDLProject包括向ChatGPT发送请求的命令。有预设的命令,还有一个自定义命令选项,允许用户编写任何他们希望的消息。只需在受支持的文件类型(VHDL、Verilog等)中突出显示一些文本,并运行Chat GPT请求命令。突出显示的文本将被附加到请求消息中。

对于初始设置,请首先从命令行安装openai python包。例如

pip install --upgrade openai

然后在HDLProject设置文件中配置您从OpenAI账户获得的api密钥。如果您有gpt-4访问权限,将chatgpt_model更改为“gpt-4”。组织内容和系统内容设置是为了将来使用。

// Settings for ChatGPT requests.
"chatgpt_api_key": "",
"chatgpt_model": "gpt-3.5-turbo",
"chatgpt_organization": "",
"chatgpt_system_content": "You are a helpful assistant.",

构建FPGA

HDLProject与Vivado和Quartus Tcl命令行集成。您可以创建自己的脚本并将其路径添加到首选项文件中<build_tcl>列表。然后,您可以通过<HDLProject: Build Tcl>命令通过命令调色板运行这些脚本。请注意,Tcl脚本只能在创建项目后运行。插件中提供了一些示例Tcl脚本,以帮助您开始。

构建可以在任何时候取消。任何后续构建将取消当前正在运行的任何构建。HDLProject 包含一个 进程管理器 对象,它在取消构建或关闭 ST4 时会追踪并随后终止所有生成的进程。这允许从 tcl 脚本中执行复杂任务,如构建整个 FPGA 项目、打开 GUI、分析布局和布线,所有这些都可以从 ST4 中启动。

以下参数传递给 tcl 脚本

  • arg0: 从偏好文件设置的当前活动项目的 project_file
  • arg1: 从偏好文件设置的当前活动项目的 top_module
  • arg2: 打开视图的文件名 window.active_view().file_name()
  • arg3: 用户定义的字符串 user_tcl_arg

检索编译顺序

为了获取正确编译顺序的文件列表,请从命令面板运行 创建编译顺序 命令。如果项目需要但缺失的文件(例如非 HDL 文件),您可以在项目设置中的 '库' 部分指定它。

键位绑定

Windows 和 Linux

{ "keys": ["ctrl+shift+l"], "command": "toggle_hdl_popups" },
{ "keys": ["ctrl+shift+b"], "command": "cancel_tcl_build"},
{ "keys": ["alt+r"], "command": "refresh_hdl_project" },

macOS

{ "keys": ["super+shift+l"], "command": "toggle_hdl_popups" },
{ "keys": ["super+shift+b"], "command": "cancel_tcl_build" },

命令参考

以下是从命令面板(ctrl+shift+p)可访问的 HDLProject 命令列表。这些命令中的任何一个都可以通过首选项->键位绑定文件映射到键上。

  • open_hdl_project
  • delete_hdl_project
  • refresh_hdl_project
  • context_open_original_containing_folder
  • open_hdl_project_file
  • do_tcl_build
  • toggle_hdl_popups
  • create_hdl_project
  • generate_hdl_compile_order
  • check_hdl_syntax
  • go_to_prev_hdl_syntax_error
  • go_to_next_hdl_syntax_error
  • cleanup_module_ambiguity
  • open_reference_project
  • comment_selection
  • cancel_tcl_build
  • open_hdl_panel
  • open_module_by_filename
  • open_module_by_hierarchy
  • generate_file_list
  • open_output_path
  • explore_file_system_in_quick_panel
  • add_new_project_entry
  • open_hdl_parent
  • create_data_structure_json
  • update_project_generics
  • toggle_split_panel
  • create_workspace

补全

包括常见关键字的 VHDL 和 Verilog 补全。

平台

  • 已在 Windows 10/11、Ubuntu 22.04 (Pop!_OS) 和 macOS Ventura 上测试过

语法高亮显示

HDLProject 伴随有重新分叉的 sublime-vhdl 和 sublime-verilog 语法高亮显示包。这些可以从视图菜单中选择,在视图->语法->HDLProject->VHDL/Verilog。

这些更新的语法允许在不打扰的情况下导航到活动文件和项目。键入 ctrl+R 将弹出活动文件的 Goto Definition 下拉菜单。这允许您跳转到该文件中的模块实例。键入 ctrl+shift+R 将弹出项目的 Goto Definition 下拉菜单。这允许您跳转到项目中任何模块/实体定义。

这些包仍然是开源的。如果感兴趣,它们也可以在外部找到:* VHDL 语法包 * Verilog 语法包

Verilog.sublime-syntax

由于 ST4 语法只支持单行正则表达式匹配,Goto Panel 和颜色方案将仅按照指定的格式拾取 Verilog 实例。对于没有参数的实例,请包括第一行的开括号。

instance_name module_name (
  <port_list>
);

对于具有参数的实例,以下内容被支持。

instance_name (
  <parameters>
) module_name (
  <port_list>
);

注意,用于测试语法文件更改的主题是 Boxy Theme

HDLProject 在 Windows 上

管理员权限

_注意,要在 Windows 10/11 上使用 HDLProject,需要以开发者模式运行。 这允许创建符号链接。否则,必须以管理员权限运行 Sublime Text。

Windows 路径字符限制

对于路径长度超过260个字符(MAX_PATH)的层次结构,将超出Windows字符限制。这在大项目中和/或解包IP核时可能会发生。当超出Windows MAX_PATH长度时,工具将自动创建具有适当命名的二级层次结构文件夹。但这也可能遇到路径长度限制。建议用户将实体/模块或IP名称缩短到尽可能少的字符。

启用长路径可以获得更好的结果。可以通过运行管理员权限的PowerShell并使用以下命令来完成

Set-ItemProperty 'HKLM:\System\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -value 1

在最坏的情况下,您会在创建项目期间看到警告消息

"WARNING: Failed to create link due to Windows 260 character limit for target: ..."

许可证

HDLProject需要每月订阅。许可证对单个人有效,在任何数量的机器上有效,并有效于所购买的任何重大版本的升级。许可证既不是节点锁定也不是时间限制的。许可证可以通過 PayPal 在 https://hdlproject.com 购买。购买后的24小时内将通过电子邮件向您发送产品密钥。

如有任何问题或疑虑,请通过 [email protected] 联系我。

安装

HDLProject通常通过Sublime Text 4的Package Control作为插件安装。使用 shift+ctrl+P,输入 'install',然后输入 'HDLProject' 并按Enter。

联系

开始时遇到困难?请在 [email protected] 与我联系!

变更记录

v1.5.3

  • 添加了初始ChatGPT集成。

v1.5.2

  • 修复了订阅许可证的问题。
  • 添加了Windows项目创建脚本。

v1.5.1

  • 修复了Windows上从fpga_project_file设置创建项目的问题。
  • 添加了对Linux客户端(和Linux服务器)的远程语法检查支持。

v1.5.0

  • 针对VHDL和Verilog中信号弹出的各种修复
  • 当语法工具路径列表具有多个条目时,添加了多工具语法检查。
  • 添加对fpga_project_file作为文件的支持,以简化项目创建。
  • 添加了对Efinix项目的解析支持。
  • 隐藏了分栏模式支持。
  • 添加了使用remote_project_path、exclude_dirs和可选aws_pem_key进行初始远程语法检查。
  • 修复了VHDL包内有其他包时的编译顺序生成。
  • 将许可证更改为基于订阅的,并提供一个月的免费服务。
  • 对工作空间进行了更多更新,但尚不支持。

v1.4.5

  • 添加了对具有环境变量的路径的展开。
  • 修复了修复语法错误时所有打开视图的清理。
  • 添加了对只是跟踪FPGA项目时的一个设置的创建项目支持:fpga_project_file
  • 将fpga_project_file作为路径(目前尚不支持递归)
  • 添加了全局per_parse_script设置支持。
  • 添加了pre_parse_with_relative_paths设置,以便在fpga_project_file相对路径上运行pre_parse_script。

v1.4.4

  • 针对Modelsim语法检查的临时修复,当安装目录是Mentor/modeltech…。

v1.4.3

  • 清理了弹出跟随链接。
  • 修复了处理项目外部文件解析信号时出现的回归。

v1.4.2

  • 更新和修复了弹出中的信号跟随链接。
  • 修复了ST4的panelview自动滚动,添加了新的自动滚动设置。
  • 修复了ST4的同步侧边栏。
  • 错误修复

v1.4.1

  • 添加了vhdl中的弹出中初始信号跟随。
  • 添加了vhdl中的向前分配弹出链接。
  • 修复了带有结束标签名称的vhdl记录的链接。
  • 修复了首次打开ST3/4与在内存中处理项目后之间不一致的行为。
  • 其他错误修复

v1.4.0

  • 添加了从命令面板选择多个语法工具的初始支持。
  • 开始更新ST4。
  • 已将许可证更改为要求超过50个文件的项目的产品密钥。

版权所有 © 2023, Andrew Carter,保留所有权利。