veripool / verilog-mode

Verilog-Mode for Emacs with Indentation, Hightlighting and AUTOs. Master repository for pushing to GNU, verilog.com and veripool.org.
http://veripool.org/verilog-mode
GNU General Public License v3.0
253 stars 90 forks source link

Structs as output ports don't work with stub generation recipe #1461

Closed veripoolbot closed 5 years ago

veripoolbot commented 5 years ago

Author Name: Paul Donahue Original Redmine Issue: 1461 from https://www.veripool.org

Original Assignee: Wilson Snyder (@wsnyder)


I have this port list on a module:

module Foo (input logic Clk,
             output DutPkg::FullOutput_s FullOutput);

I followed the recipe for generating stubs from https://www.veripool.org/projects/verilog-mode/wiki/Faq#How-do-I-make-a-Stub-module

However, verilog-mode doesn't seem to recognize FullOutput as an output:

module FooStub (/*AUTOARG*/
    // Inputs
    Clk
    );
  /*AUTOINOUTPARAM("Foo")*/
  /*AUTOINOUTMODULE("Foo")*/
  // Beginning of automatic in/out/inouts (from specific module)
  input logic       Clk;
  DutPkg::FullOutput_s  FullOutput;
  // End of automatics
endmodule : FooStub

I would expect FullOutput to be in the port list and the "output" keyword to appear in the AUTOINOUTMODULE section. In playing around, I found that it seems to work if FullOutput is declared as one of the built-in types but not when it is something else I typedef'ed.

I have attached a tarball with the Foo module, the FooStub module, a Makefile, and the verilog-mode.el I used (which is the latest from last week).

Thanks,

-Paul

veripoolbot commented 5 years ago

Original Redmine Comment Author Name: Wilson Snyder (@wsnyder) Original Date: 2019-06-11T21:15:23Z


Thanks for the very clear example, this makes it a lot easier.

Unfortunately Verilog-mode needs to know what is a type (as in cases without the :: it might otherwise be an interface). If you add this to Foo.sv and FooStub.sv it works, or equivalently to some startup file.

// Local Variables: // verilog-typedef-regexp: "_s$" // End:

veripoolbot commented 5 years ago

Original Redmine Comment Author Name: Paul Donahue Original Date: 2019-06-12T00:49:48Z


Thanks for another fast response. I'm sorry to bother you since I see now that this is already documented.

Your suggestion, of course, works great.