cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
277 Views
Registered: ‎04-30-2020

[BUG] Can't connect an array of nested struct-s to an instance array

Jump to solution

Hello!

I have a problem with Vivado 2019.2 synthesis (behavioral simulation works as expected). I have a module instance array, where the ports are connected to arrays of their respective types, expecting each module instance to pick up the corresponding array element. This used to work fine, but recently I modified the type of one of the ports, which became a struct containing another struct. Simulation continued to work, but I get an error during synthesis.

Minimal example (System Verilog):

========

typedef struct {
  logic c;
} B;

typedef struct {
  B b;
  //logic b;
} A;

module Mymodule(
  input A a
);
endmodule

module Top(
);
  A a;

  Mymodule mymodule (
    .a(a)
  );

  A aa[0:9];

  Mymodule mymodules[0:9] (
    .a(aa)
  );
endmodule

========

synth_design gives me:

ERROR: [Synth 8-448] named port connection 'a[b[c]]' does not exist for instance 'mymodules' of module 'Mymodule' [xxx.sv:26]

Connecting a single (non-array) instance is fine. Replacing the "B b" definition with "logic b" to eliminate the struct-in-struct also works. Please confirm if this is a bug. Cheers.

 

1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
232 Views
Registered: ‎07-21-2014

Hi @GP 

 

Yes, this is a bug in Vivado synthesis with array of module instance with nested struct port.

Will report this to get fixed in future release.

 

-Shreyas 

----------------------------------------------------------------------------------------------
Try to search answer for your issue in forums or xilinx user guides before you post a new thread.

Kindly note- Please mark the Answer as "Accept as solution" if information provided solves your query.
Give Kudos (star provided in right) to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
233 Views
Registered: ‎07-21-2014

Hi @GP 

 

Yes, this is a bug in Vivado synthesis with array of module instance with nested struct port.

Will report this to get fixed in future release.

 

-Shreyas 

----------------------------------------------------------------------------------------------
Try to search answer for your issue in forums or xilinx user guides before you post a new thread.

Kindly note- Please mark the Answer as "Accept as solution" if information provided solves your query.
Give Kudos (star provided in right) to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
Highlighted
Visitor
Visitor
193 Views
Registered: ‎04-30-2020

Thanks. It seems that a "generate for" can be a straightforward workaround for this, but a fix would be even better.

 

0 Kudos