2015-06-22 18 views
8

Tôi đang cố gắng để có chế độ Verilog thụt lề tất cả mọi thứ bằng cách sử dụng 2 dấu cách ngoại trừ từ chối và luôn luôn. Đây là những gì tôi thêm vào emacs của tôi:Sửa đổi thụt lề chế độ 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) 

Những là kết quả trên một mô-đun thử nghiệm

`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 

Phần đó không phải là đúng là cổng và tham số danh sách. Ngoài ra, tuyên bố của count được căn chỉnh với các khai báo cổng, điều này thật lạ. Tôi muốn này để trông giống như:

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

Tôi đang sử dụng emacs 24.3.1 Tôi không chắc chắn làm thế nào để tinh chỉnh này chỉ sử dụng các biến được cung cấp bởi các chế độ Verilog, bất cứ đề nghị?

Trả lời

3

Điều này không khớp chính xác với bố cục được yêu cầu của bạn, nhưng những gì tôi làm là đặt #( bên dưới từ khóa mô-đun và tách dấu ngoặc đơn cuối khỏi danh sách tham số và dấu ngoặc đơn bắt đầu cho danh sách cổng thành các dòng riêng biệt. Kết quả là dưới đây. Tất cả thụt đầu dòng của tôi là dành cho 3 không gian, nhưng bạn có thể tinh chỉnh đó cho phù hợp với nhu cầu của bạn:

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                                                               

Chế độ Verilog liên quan phần của tệp emacs của tôi là dưới đây:

(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

Có gì trong emacs của bạn ? – igon

Các vấn đề liên quan