Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virtual Interface modport issue #778

Closed
veripoolbot opened this issue May 30, 2014 · 5 comments
Closed

Virtual Interface modport issue #778

veripoolbot opened this issue May 30, 2014 · 5 comments
Assignees

Comments

@veripoolbot
Copy link
Collaborator


Author Name: Jon Nall
Original Redmine Issue: 778 from https://www.veripool.org
Original Date: 2014-05-30
Original Assignee: Wilson Snyder (@wsnyder)


The following code (taken generally from IEEE 1800-2009 spec Section 25) results in an error due to using a modport in the virtual statement. I believe this code should parse without error.

Verilog-Perl generates: syntax error, unexpected '.', expecting IDENTIFIER or '=' or do or final

@interface foo;
wire a, b, c, d;
modport master (input a, b, output c, d);
modport slave (output a, b, input c, d);
endinterface : foo

virtual foo.master bar;
@

@veripoolbot
Copy link
Collaborator Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2014-05-31T12:33:58Z


The data_type's yVIRTUAL rules are missing the ['.' modport_identifier].

Unfortunately three attempts of adding this all are making the grammar explode (because '.' can also be used to reference a member of an interface, and the grammar can't know the difference). Let me give it more thought.

@veripoolbot
Copy link
Collaborator Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2014-05-31T13:49:07Z


Figured it out.

Fixed in git towards 3.404.

@veripoolbot
Copy link
Collaborator Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2014-06-09T01:30:57Z


In 3.404.

@veripoolbot
Copy link
Collaborator Author


Original Redmine Comment
Author Name: Jon Nall
Original Date: 2015-03-11T15:13:04Z


Wilson,
It seems this is still broken if the declaration is in a class. An example is below.

Thanks,
nall.

interface foo;

     wire a, b, c, d;
     modport master (input a, b, output c, d);
     modport slave (output a, b, input c, d);
endinterface : foo

class bar;
     virtual foo.master bar;
endclass

@veripoolbot
Copy link
Collaborator Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2015-03-13T21:32:51Z


Classes fixed in git towards 3.409.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants