verilog-mode中屏蔽两个及以上的auto_output

今天自己在使用verilog mode的过程中,遇到两个信号需要屏蔽掉auto output的功能,中间遇到了一些问题,作下记录。

verilog-mode 工具中,如果你想同时忽略两个输出(比如含有 avgsnrcursnr 的自动生成的 output),可以利用正则表达式的过滤功能,通过配置 verilog-mode 的 auto output 生成规则来达到这个目的。

具体步骤如下:

1. 修改 verilog-auto 的输出规则

verilog-mode 中,verilog-auto 负责自动生成信号声明。如果你希望忽略特定信号的输出,可以在 verilog-mode 的配置中通过正则表达式或者手动调整自动生成的代码。

2. 通过 verilog-auto-output-ignore-regexp 进行过滤

verilog-mode 中,你可以设置 verilog-auto-output-ignore-regexp 这个变量,指定要忽略的输出信号。这个正则表达式会匹配并忽略那些自动生成的 output。

假设你希望忽略含有 avgsnrcursnr 的输出,可以通过以下步骤实现:

配置 verilog-auto-output-ignore-regexp
  1. 打开 ~/.emacs 或者 ~/.emacs.d/init.el(或者直接在 gvim:Emacs 模式下配置)。

  2. 添加以下配置:

    (setq verilog-auto-output-ignore-regexp "\\(avgsnr\\|cqi_1x1\\)")
    
    • \\( ... \\| ... \\) 是正则表达式中的“或”运算符,表示忽略 avgsnrcursnr 的输出。
    • 这段代码设置了一个正则表达式,自动忽略所有与 avgsnrcursnr 匹配的 output。
  3. 保存配置并重新加载 verilog-mode

3. 如何使用

每次你使用 verilog-modeverilog-auto 功能时,它会自动根据你的设置忽略输出信号中包含 avgsnrcursnr 的项。

4. 手动编辑(如果需要)

如果你想手动控制哪些 output 被忽略,也可以直接在 Verilog 文件中注释掉自动生成的 output 声明,或者在 AUTOOUTPUT 块中移除不需要的信号。

总结

通过设置 verilog-auto-output-ignore-regexp,你可以在 verilog-mode 中自动忽略含有 avgsnrcursnroutput。正则表达式将控制这些输出在自动生成时被跳过。

需要两个"\"的原因

在很多编程语言和工具(比如 Emacs、Verilog-mode)中,两个反斜杠 (\\) 是用来转义特殊字符的。这里的 \\ 实际上代表一个单一的反斜杠 (\)。

原因解析:
  1. 反斜杠是转义字符
    反斜杠 \ 是正则表达式和编程语言中的转义字符,它用于表示特殊含义的符号。例如,\( 表示左括号 ( 在正则表达式中有特殊意义(表示分组)。

  2. 编程语言中的转义机制
    在某些编程语言(如 Python、Emacs Lisp)中,反斜杠 \ 也被用作字符串转义符。例如,如果你在字符串中写 \n,它代表换行符,而不是字面意义上的两个字符 \n

    因此,如果你想在这些语言中使用字面上的反斜杠 \,需要使用两个反斜杠 \\ 来进行转义。这样,编译器或解释器在处理时会将两个反斜杠识别为一个实际的反斜杠。

在正则表达式中的双反斜杠:
  • \(\):在正则表达式中表示分组,但在编程语言或工具的字符串中,必须写作 \\(\\),因为第一个反斜杠是对第二个反斜杠的转义,实际传递给正则表达式引擎的还是 \(\)

  • \|:表示“或”逻辑,同样的道理,在需要转义反斜杠的语言或工具中,你必须写成 \\| 来表示实际的 \|

举个例子:

假设你在 Emacs 中使用正则表达式搜索,你想匹配分组和“或”逻辑,比如 (avgsnr|cursnr)。因为 Emacs 的正则表达式中 ()| 有特殊含义,你必须用 \( 来表示分组,用 \| 来表示“或”。

但是,在 Emacs 的 Lisp 配置中,你需要写作:

"\\(avgsnr\\|cqi_1x1\\)"

在这个例子中:

  • \\( 是实际的正则表达式中的 \(,表示分组。
  • \\| 是正则表达式中的 \|,表示“或”。
  • \\) 是正则表达式中的 \),表示分组结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日拱一卒_未来可期

若复习顺利望有闲钱的同学支持下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值