igo*_*gon 8 emacs verilog indentation system-verilog emacs24
我试图使用verilog模式缩进所有使用2个空格除了decls和always.这是我添加到我的.emacs中的内容:
;; `define are not indented
(setq verilog-indent-level-directive 0)
;; always, initial etc not indented
(setq verilog-indent-level-module 0)
;; logic declarations are not indented
(setq verilog-indent-level-declaration 0)
;;2 space indent
(setq verilog-indent-level 2)
;; no indent on list and no indent when on multiple lines
(setq verilog-indent-lists nil)
(setq verilog-cexp-indent 0)
Run Code Online (Sandbox Code Playgroud)
这是测试模块的结果
`ifndef MY_MODULE_SV
`define MY_MODULE_SV
module my_module #(
parameter MyPar1 = 16,
parameter MyPar2 = 32
) (
input logic clk,
input logic reset,
//comment indented weirdly
output logic [3:0] result
);
logic [3:0] count;
always @(posedge clk) begin
//comment indented ok
if (reset) begin
count <= 0;
result <= 0;
end
else begin
result <= count;
count <= count+1;
end
end
endmodule; // my_module
`endif
Run Code Online (Sandbox Code Playgroud)
不正确的部分是端口和参数列表.count
获取的声明与端口声明对齐,这很奇怪.我希望这看起来像:
module my_module #(
parameter MyPar1 = 16,
parameter MyPar2 = 32
) (
input logic clk,
input logic reset,
//result signal
output logic [3:0] result
);
Run Code Online (Sandbox Code Playgroud)
我正在使用emacs 24.3.1我不知道如何使用verilog模式提供的变量来调整这个,任何建议?
这与您请求的布局并不完全匹配,但我所做的是将#(
模块关键字放在下面,并将参数列表中的结束括号和端口列表的开始括号拆分到单独的行上。结果如下。我的所有缩进都是 3 个空格,但您可以调整它以满足您的需要:
module my_module
#(
parameter MyPar1 = 16,
parameter MyPar2 = 32
)
(
input logic clk,
input logic reset,
//comment indented weirdly
output logic [3:0] result
);
logic [3:0] count;
always @(posedge clk) begin
//comment indented ok
if (reset) begin
count <= 0;
result <= 0;
end
else begin
result <= count;
count <= count+1;
end
end
endmodule; // my_module
Run Code Online (Sandbox Code Playgroud)
我的 .emacs 文件的 verilog 模式相关部分如下:
(custom-set-variables
'(verilog-align-ifelse t)
'(verilog-auto-delete-trailing-whitespace t)
'(verilog-auto-inst-param-value t)
'(verilog-auto-inst-vector nil)
'(verilog-auto-lineup (quote all))
'(verilog-auto-newline nil)
'(verilog-auto-save-policy nil)
'(verilog-auto-template-warn-unused t)
'(verilog-case-indent 3)
'(verilog-cexp-indent 3)
'(verilog-highlight-grouping-keywords t)
'(verilog-highlight-modules t)
'(verilog-indent-level 3)
'(verilog-indent-level-behavioral 3)
'(verilog-indent-level-declaration 3)
'(verilog-indent-level-module 3)
'(verilog-tab-to-comment t))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4178 次 |
最近记录: |