Próbuję ustawić tryb verilog wciskając wszystko za pomocą 2 spacji, z wyjątkiem dekodowania i zawsze. To właśnie dodałem do moich .emacs:Modyfikowanie wcięcia trybu verilog
;; `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)
Są to wynik na module testowym
`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
Część, która nie jest poprawna znajduje się lista portów i parametr. Również deklaracja count
jest dopasowywana do deklaracji portu, co jest dziwne. Chciałabym to wyglądać:
module my_module #(
parameter MyPar1 = 16,
parameter MyPar2 = 32
) (
input logic clk,
input logic reset,
//result signal
output logic [3:0] result
);
Używam emacs 24.3.1 nie jestem pewien, jak to przy użyciu tylko dostosować do zmiennych udostępnianych przez trybie verilog, jakieś sugestie?
Co znajduje się w .emacs ? – igon