Notepad++配合Finger Text提高Verilog编码效率

2023-11-11

简介

做FPGA开发的一般都不会选择IDE环境自带的编辑器,一是因为界面不够美观,二是自动补全功能不够完善。而我经常使用的是Notepad++,支持Verilog语法高亮和最基本的关键字补全,但是对于一些经常使用的模块,需要手动重复性的输入还不够完善,最近偶然发现一款插件,可以根据输入的关键字,自动生成一部分代码片段,非常方便。它就是Finger Text,是Notepad++的一款扩展插件。

通过创建多个关键字和代码片段,可以大大提高编码效率,节省编码实现时间,让开发人员把更多的时间投入到设计和调试过程。

支持以下基本功能:

  • 触发键默认为TAB,可自行设置
  • 根据指定的关键字,自动输入所对应的代码片段
  • 支持系统关键字补全,日期、时间、文件名、文件路径等
  • 支持触发调用系统控制台命令
  • 支持自动计算数学算式
  • 支持单个/所有关键字配置文件的导出和导入

官方主页:https://sourceforge.net/projects/fingertext/

my

安装方法

Finger Text插件目前只支持Notepad++编辑器,最新版本的Notepad++可以通过自带的插件管理方式安装。

旧版本的编辑器需要单独下载插件dll文件,然后放在Notepad++\plugins文件夹下。

fingertext

使用方法

例如,我们在进行Verilog编码时,经常会用到always块,基本结构如下:

always @ (posedge clk) begin
    if(!rst_n) begin
    	//...
    end
    else begin
    	//...
    end
end

虽然只有短短几行,但是每天如果要输入几百个这样的always块,所占用的时间也是非常多的。那么如何使用fingertext插件,当我们输入al时自动替换为以上格式的always模板呢?

先选中一段always块,选择插件->FingerText->Create Snippet from Selection

1

然后在弹出的界面中,设置触发的关键字,所作用的文件类型(全局/扩展名/编程语言),这里选择只在Verilog文件有效。

2

$[![]!]表示代码片段生成之后,光标移动的位置。

末尾的[>END<]表示代码片段的结束,在此之后,可以输入一些注释信息。

配置保存之后,在Verilog文件中,输入al之后,按下TAB键的效果:

3

其他的配置条件:

$[![]!]						  //按TAB键之后跳转的位置
 $[0[]0]					  //光标最后停留的位置
$[![var_name]!]				  //所有相同名称的变量都会被同时改变
$[![(key)DATE]!]              //2022年3月12日
$[![(key)TIME]!]              //14:05:22
$[![(key)FILENAME]!]          //top
$[![(key)EXTNAME]!]           //.v
$[![(key)DIRECTORY]!]         //E:\mcu149
$[![(key)PASTE]!]             //当前剪贴板的内容
$[![(run)calc]!]              //执行控制台命令:打开计算器
$[![(run)explorer]!]          //执行控制台命令:打开资源管理器
$[![(lis)Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday]!]   //下拉式字符串选择
$[![(opt)Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday]!]   //下拉式字符串选择
$[![(lis)Sunday|wire|reg|parameter|localparam|assign]!]   //输入字符串之后,可以按TAB键触发其他关键字
$[![(opt)Sunday|wire|reg|parameter|localparam|assign]!]   //输入字符串之后,可以按TAB键执行其他命令
$[![(eva)1+2-3*4/5]!]		  //0.6
$[![(cha)wir]!]				  //插入别的已经定义的关键字

关键字触发替换成普通字符串:

my

系统关键字,日期、时间、文件名等。

key

lis效果,按上下键选择,按ENTER键确定。:

week_lis

opt效果,按上下键选择,TAB键确定。:

week_opt

打开控制台命令,如计算器、资源管理器等。

calc

在Verilog中的应用:

文件头,关键字head

head

模块端口声明,关键字mod

mod

1位输入信号i1,n位输入信号ix:

i1x

1位输出信号o1,n位输出信号ox:

o1x

1位输入输出信号,n位输入输出信号:

io1x

1位wire和n位wire定义:

w1wx

1位reg和n位reg定义:

r1rx

1位assign和n位assign:

as1asx

localparam和parameter定义:

lppr

memory定义,关键字mem:

mem

if语句,关键字if1:

if1

generate模块,关键字gr:

gr

移位寄存器定义,关键字sreg:

sreg

always定义,关键字aw:

aw

状态机定义,关键字fsm:

fsm

生成模块整体框架,关键字temp:

temp

testbench模板:

testbench

$display,关键字dp:

dp

function函数,关键字fc:

fc

task模板,关键字tsk:

tsk

还可以把以上几个合并成一个关键字:

mydef

配置文件的获取

Verilog配置文件的获取可以关注以下公众号,在后台回复【0313】获取以上Verilog代码片段的配置文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Notepad++配合Finger Text提高Verilog编码效率 的相关文章

  • FPGA零基础学习之Vivado-ROM使用教程

    FPGA零基础学习之Vivado ROM使用教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者都
  • PRBS笔记

    1 概述 PRBS 伪随机二进制序列 也称为伪随机码 通常被用来测试高速信号的信号质量 伪随机 也说明了该码流并不是真正的随机 而是具有特性属性 码流由 多项式 决定 具有重复周期 PRBS具有多种阶数 如PRBS7 PRBS15 PRBS
  • STM32【复习串口】

    串口复习加深理解笔记 杂谈 USART FLAG TXE发送缓冲区空标志 说明可以往数据寄存器写入数据了 但并不代码数据发送完成了 USART FLAG TC发送完成标志 这个才是代表USART在缓冲区的数据发送完成了 即从机接收到了数据
  • 数字芯片流程

    芯片设计分为前端设计和后端设计 前端设计 逻辑设计 和后端设计 物理设计 并没有同意严格的界限 这个过程中涉及到了与工艺有关的设计就是后端设计 一 需求分析 产品需要解决的问题 预测3 5年的趋向和走势 确保前瞻性 确保芯片是有卖点的 客户
  • 平头哥(T-Head )开源RISCV处理器OpenC906 RTL仿真

    在过去的几年里 阿里集团平头哥陆续推出了几款RISCV处理器 有些处理器已经在产业界得到了应用 比如在某志的D1处理器中 就嵌入了平头哥的玄铁C906内核为 芯 RISCV虽然是一个开放标准 并且网络上也不乏一些开源核的RTL实现 但是商用
  • SD卡读写实验(SPI模式)

    对于 SD 卡的 SPI 模式而言 采用的 SPI 的通信模式为模式 3 即 CPOL 1 CPHA 1 在 SD 卡 2 0 版 本协议中 SPI CLK 时钟频率可达 50Mhz SD 卡的 SPI 模式 只用到了 SDIO D3 SP
  • 关于Keil中Memory中观察不到数据变化的问题以及启动文件栈的初始化

    关于Keil中Memory中观察不到数据变化的问题 在KEIL中观察Memory数据变化 一定要记得只能在RAM地址或ROM之内观察 如下图所示 RAM的地址设置在地址为0x20000000开始的地方 大小为0x20000 因此只有在这个范
  • FPGA的基本设计流程

    FPGA开发主要包括系统设计 设计输入 功能仿真 综合优化 综合后仿真 实现与布局布线 时序方针与验证 板级方针与验证 芯片编程与调试等9个部分 如下图所示 1 电路设计 在系统设计之前 首先要进行的是方案论证 系统设计和FPGA芯片选择等
  • 八、RISC-V SoC外设——GPIO接口 代码讲解

    前几篇博文中注释了RISC V的内核CPU部分 从这篇开始来介绍RISC V SoC的外设部分 另外 在最后一个章节中会上传额外添加详细注释的工程代码 完全开源 如有需要可自行下载 目录 0 RISC V SoC注解系列文章目录 1 结构
  • 吃透Chisel语言.18.Chisel模块详解(五)——Chisel中使用Verilog模块

    Chisel模块详解 五 Chisel中使用Verilog模块 上一篇文章讲述了用函数实现轻量级模块的方法 可以大幅度提升编码效率 Chisel中也提供了一些好用的函数 方便我们编写代码 也方便Chisel编译器优化生成的硬件电路 在Chi
  • 【FPGA】面试问题及答案整理合集

    面试问题及答案整理合集 1 硬件描述语言和软件编程语言的区别 2 FPGA选型问题 3 建立时间和保持时间问题 3 亚稳态问题 4 竞争和冒险问题 5 乒乓操作问题 6 同步和异步逻辑电路 7 同步复位和异步复位 8 MOORE 与 MEE
  • 【DDR3 控制器设计】(3)DDR3 的写操作设计

    写在前面 本系列为 DDR3 控制器设计总结 此系列包含 DDR3 控制器相关设计 认识 MIG 初始化 读写操作 FIFO 接口等 通过此系列的学习可以加深对 DDR3 读写时序的理解以及 FIFO 接口设计等 附上汇总博客直达链接 DD
  • 蓝桥杯真题:迷宫

    目录 题目描述 运行限制 dfs bfs 结果 题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 11 的为障碍 标记为 00 的为可以通行的地方 010000 000
  • PAJ7620U2手势识别——配置0x00寄存器(3)

    文章目录 前言 一 为啥要配置0x00寄存器 二 配置步骤 1 单个读操作步骤图 2 模块状态转移图绘制 3 模块波形图绘制 4 上板验证 5 参考代码 总结 前言 在前面的教程中 小编带领各位读者学习了如何通过I2C协议去唤醒PAJ762
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • 【FPGA】通俗理解从VGA显示到HDMI显示

    注 大部分参考内容来自 征途Pro FPGA Verilog开发实战指南 基于Altera EP4CE10 2021 7 10 上 贴个下载地址 野火FPGA Altera EP4CE10征途开发板 核心板 野火产品资料下载中心 文档 hd
  • 【FPGA多周期时序约束详解】- 解读FPGA多周期时序约束的全过程

    FPGA多周期时序约束详解 解读FPGA多周期时序约束的全过程 FPGA作为数字电路设计的常见工具 其设计中必然会遇到时序约束的问题 而多周期时序约束更是FPGA设计中不可避免的难点之一 本文将详细介绍FPGA多周期时序约束的全过程 并结合
  • 【ZYNQ学习】PL第一课

    这节课讲什么 这节课的名字本来是想写为LED 但这一课里除了LED也有按键 又想换为GPIO控制 但关于PL的GPIO控制 不应该这么草率和简单 而且这一课有很多和ZYNQ或者PL关联性不强的东西要说 所以我写了删删了写改了好几遍 终于定为
  • TRICONEX MA2211-100 芯片上相互连接

    TRICONEX MA2211 100 芯片上相互连接 TRICONEX MA2211 100 所有相同的组件 io的电源 处理器 和内存将需要 但是 你可以看到所有这些带存储器和处理器的OO板 针不能嵌入到一个小的单片机上 现在是 普拉克
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573

随机推荐