如何使用 emacs verilog-mode 获取声明顺序 AUTOINST?

How to get declaration order AUTOINST with emacs verilog-mode?

当使用 vim 自动实例化时,我得到一个 AUTOINST,其声明顺序如图所示。但是,我需要使用 emacs AUTO_TEMPLATE 进行多个实例化,所以我尝试使用“emacs --batch file.v -f verilog-batch-auto”。不幸的是,这是排序顺序。如何使用 emacs verilog-mode 获得此声明顺序 AUTOINST?

DWC_mipi_dsi_host i_DWC_mipi_dsi_host_left
    (/*AUTOINST*/
      //APB Interface
    .presetn                        (presetn                                              ), // input 
    .pclk                           (pclk                                                 ), // input 
    .paddr                          (paddr[9:0]                                           ), // input 
    .penable                        (penable                                              ), // input 
    .psel                           (psel                                                 ), // input 
    .pwrite                         (pwrite                                               ), // input 
    .pwdata                         (pwdata[31:0]                                         ), // input 
    .prdata                         (prdata[31:0]                                         ), // output
    .interrupt                      (interrupt                                            ), // output
      //DPI INTERFACE
    .dpipclk                        (dpipclk                                              ), // input 
    .dpivsync                       (dpivsync                                             ), // input 
    .dpihsync                       (dpihsync                                             ), // input 
    .dpipixdata                     (dpipixdata[`DSI_HOST_PIXELDATAWIDTH-1:0]             ), // input 
    .dpidataen                      (dpidataen                                            ), // input 
    .dpishutdn                      (dpishutdn                                            ), // input 
    .dpicolorm                      (dpicolorm                                            ), // input 
    .dpiupdatecfg                   (dpiupdatecfg                                         ), // input 
    .edpihalt                       (edpihalt                                             ), // output

根据 http://doc.endlessparentheses.com/Fun/verilog-auto-inst.html 的文档,我似乎需要使用 verilog-auto-arg-sort:nil 和 verilog-auto-inst-sort:nil

我试过在 ~/.emacs 和文件底部设置它们,但没有区别。有什么想法吗?

// Local Variables:
// verilog-library-flags:("-f ../src/files.vc")
// verilog-auto-arg-sort:nil
// verilog-auto-inst-sort:nil
// End:

事实证明,这是由于 emacs 预装了旧版本的 verilog-mode。

emacs Verilog --> Version and FAQ
You are using verilog-mode 2017-08-07-c085e50-vpo-GNU

这可以通过根据 https://www.veripool.org/wiki/verilog-mode

中的说明更新 verilog-mode 来解决