这是我的问题,我将端口列表定义为:
module spi_jstk (
input clk, // System Clock (40MHz)
input reset, // Async Reset
input START, // Initialize SPI Transfer
input [39:0] DATA, // Input Data to Transfer
input SS, // Chip Select
output SCLK, // Serial Clock
input MISO, // Master In Slave Out
output MOSI ); // Master Out Slave In
看起来很不错。
现在让我说我在这个列表中添加一个新信号,或者只是点击TAB,这就是:
module spi_jstk (
input clk, // System Clock (40MHz)
input reset, // Async Reset
input START, // Initialize SPI Transfer
input [39:0] DATA, // Input Data to Transfer
input SS, // Chip Select
output SCLK, // Serial Clock
output NEW, // NEW SIGNAL
input MISO, // Master In Slave Out
output MOSI ); // Master Out Slave In
不确定为什么它对我的评论这样做,有谁知道我如何关闭它?真的令人沮丧。
另一件我不明白的事情是,如果我按常规信号列表(不在端口列表中)点击TAB,它就不会惹我的评论。选项卡后这些注释保持对齐。
// Signals
reg [2:0] q_state, n_state;
reg q_clk;
reg q_sck; //1 MHz ticks
reg [7:0] q_mosi; //1 MHz ticks
reg [7:0] q_miso; //1 MHz ticks
任何人都知道如何解决这个问题?感谢。
答案 0 :(得分:3)
这似乎是auto-lineup
行为的副作用。 C-h v verilog-auto-lineup 输入的文档描述了行为
Type of statements to lineup across multiple lines.
If 'all' is selected, then all line ups described below are done.
If 'declarations', then just declarations are lined up with any
preceding declarations, taking into account widths and the like,
so or example the code:
reg [31:0] a;
reg b;
would become
reg [31:0] a;
reg b;
If 'assignment', then assignments are lined up with any preceding
assignments, so for example the code
a_long_variable <= b + c;
d = e + f;
would become
a_long_variable <= b + c;
d = e + f;
然而,在这个过程中它似乎删除了代码和注释之间的额外空格,我找不到一种方法来防止它弄乱评论(你可能想向其维护者报告错误 MX 的Verilog-提交 - 错误报告 RET )。一种选择可能是通过自定义变量verilog-auto-lineup
来禁用此行为。有几种方法可以这样做
1)你可以使用emacs&#39;这样做可以自定义UI。只需执行 M-x customize-variable RET verilog-auto-lineup RET 。并为变量选择所需的值。
2)您可以在init文件中添加以下内容之一
(setq verilog-auto-lineup nil) ;; disable completely
(setq verilog-auto-lineup 'assignment) ;; disable only for declarations