Skip to content

Fail to elaborate when a port map has an interface view broken out as individual associations #1074

@Aaron-Hartwig

Description

@Aaron-Hartwig

Example (from here):

A0 : my_component
PORT MAP(
  clk => CLK, 
  data.input_one => IONE, 
  data.input_two => ITWO, 
  data.input_rst => RST, 
  result.output_one => OONE, 
  result.output_dn => ODN
);

When something like that is done nvc fails out like this:

nvc: ../src/lower.c:931: lower_for_each_field_2: Assertion `vcode_reg_kind(rec1_ptr) == VCODE_TYPE_POINTER' failed.

*** Caught signal 6 (SIGABRT) ***

[0x5e52ef3ab32b] ../src/util.c:897 signal_handler
[0x763e5a04251f] (/usr/lib/x86_64-linux-gnu/libc.so.6) 
[0x763e5a0969fc] (/usr/lib/x86_64-linux-gnu/libc.so.6) ./nptl/pthread_kill.c:44 __pthread_kill_implementation
[0x763e5a0969fc] (/usr/lib/x86_64-linux-gnu/libc.so.6) ./nptl/pthread_kill.c:78 __pthread_kill_internal
[0x763e5a0969fc] (/usr/lib/x86_64-linux-gnu/libc.so.6) ./nptl/pthread_kill.c:89 pthread_kill@@GLIBC_2.34
[0x763e5a042475] (/usr/lib/x86_64-linux-gnu/libc.so.6) ../sysdeps/posix/raise.c:26 raise
[0x763e5a0287f2] (/usr/lib/x86_64-linux-gnu/libc.so.6) ./stdlib/abort.c:79 abort
[0x763e5a02871a] (/usr/lib/x86_64-linux-gnu/libc.so.6) ./assert/assert.c:92 __assert_fail_base.cold
[0x763e5a039e95] (/usr/lib/x86_64-linux-gnu/libc.so.6) ./assert/assert.c:101 __assert_fail
[0x5e52ef43f0bc] ../src/lower.c:931 lower_for_each_field_2
[0x5e52ef4652fc] ../src/lower.c:12049 lower_port_map
[0x5e52ef466d0d] ../src/lower.c:12501 lower_ports
[0x5e52ef468cca] ../src/lower.c:13118 lower_instance
[0x5e52ef417a79] ../src/elab.c:1443 elab_lower
[0x5e52ef418207] ../src/elab.c:1560 elab_architecture
[0x5e52ef418d73] ../src/elab.c:1735 elab_instance
[0x5e52ef41a3af] ../src/elab.c:2122 elab_stmts
[0x5e52ef418239] ../src/elab.c:1562 elab_architecture
[0x5e52ef418d73] ../src/elab.c:1735 elab_instance
[0x5e52ef41a3af] ../src/elab.c:2122 elab_stmts
[0x5e52ef418239] ../src/elab.c:1562 elab_architecture
[0x5e52ef41af40] ../src/elab.c:2337 elab
[0x5e52ef3a17fd] ../src/nvc.c:504 elaborate
[0x5e52ef3a57f7] ../src/nvc.c:2185 process_command
[0x5e52ef3a5d37] ../src/nvc.c:2345 main

This is perhaps described in IEEE1076-2019 in 6.5.7.1?

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions