2015-06-22 18 views
8

Ich versuche Verilog Modus Einzug alles mit 2 Leerzeichen außer decls und immer haben. Das ist, was ich meine .emacs hinzugefügt:Ändern Verilog-Modus Einrückung

;; `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) 

Dies ist das Ergebnis auf einem Testmodul ist

`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 

Der Teil, der nicht korrekt sind der Hafen und die Parameterliste ist. Auch die Deklaration von count wird auf die Port-Deklarationen ausgerichtet, was merkwürdig ist. würde Ich mag diese aussehen:

module my_module #(                                                               
    parameter MyPar1 = 16,                                                               
    parameter MyPar2 = 32                                                               
) (
    input logic  clk, 
    input logic  reset, 
    //result signal                                                                 
    output logic [3:0] result 
); 

Ich benutze Emacs 24.3.1 Ich bin nicht sicher, wie dies durch den Verilog-Modus zur Verfügung gestellt nur die Variablen zu optimieren, jede Anregung?

Antwort

3

Das stimmt nicht genau mit dem von Ihnen gewünschten Layout überein, aber was ich tue, ist #( unter dem Schlüsselwort module und split das Ende paren von der Parameterliste und den Anfang für die Portliste auf separate Zeilen. Das Ergebnis ist unten. Alle meine Vertiefung 3 Räume für, aber man konnte das zwicken Ihre Bedürfnisse anpassen:

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                                                               

Der Verilog-Modus im Zusammenhang Abschnitt meiner .emacs-Datei unten ist:

(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)) 
+0

Was ist in Ihrem .emacs ist ? – igon