nickg / nvc

VHDL compiler and simulator
https://www.nickg.me.uk/nvc/
GNU General Public License v3.0
631 stars 77 forks source link

"** Fatal: Write to object in frozen arena PIPEWORK.REDUCER-RTL [address=0x7f207229bc88]" while elaborating instance #812

Closed ikwzm closed 9 months ago

ikwzm commented 9 months ago

Please download and prepare the repository as follows

shell$ git clone --branch nvc-issue-812 --recursive --depth 1 https://github.com/ikwzm/PipeWorkTest.git
    :
    :
shell$ cd PipeWorkTest/sim/nvc/axi4_lite/

When run with nvc r1.11.0, it fails as follows

shell$ nvc --version
nvc 1.11.0 (1.11.0.r0.gd9d0872a) (Using LLVM 10.0.0)
Copyright (C) 2011-2023  Nick Gasson
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and
you are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
shell$ make
sh analyze_libs.sh
** Warning: `default' is a reserved word in VHDL-2008
      > /mnt/d/ichiro/work/tmp/PipeWorkTest/Dummy_Plug/src/main/vhdl/axi4/axi4_channel_player.vhd:2958
      |
 2958 |                           default     : in  std_logic;
      |                           ^^^^^^^
      |
      = Note: pass --std=2008 to enable this feature
nvc -L ./ -M 32M --work=WORK -e  axi4_lite_test_bench_32_32
** Fatal: Write to object in frozen arena PIPEWORK.REDUCER-RTL [address=0x7f207229bc88]
     > /mnt/d/ichiro/work/tmp/PipeWorkTest/PipeWork/src/axi4/axi4_register_write_interface.vhd:402
     |
 402 |     WBUF: REDUCER                                  -- 
     |     ^ while elaborating instance WBUF
     |
     = Note: generic WORD_BITS => 8
     = Note: generic STRB_BITS => 1
     = Note: generic I_WIDTH => 4
     = Note: generic O_WIDTH => 4
     = Note: generic QUEUE_SIZE => 4
     = Note: generic VALID_MIN => 0
     = Note: generic VALID_MAX => 0
     = Note: generic O_VAL_SIZE => 0
     = Note: generic O_SHIFT_MIN => 4
     = Note: generic O_SHIFT_MAX => 4
     = Note: generic NO_VAL_SET => 0
     = Note: generic I_JUSTIFIED => 0
     = Note: generic FLUSH_ENABLE => 1
[0x7f207b1ef5b4] /usr/include/x86_64-linux-gnu/bits/stdlib.h:1015 diag_femit
[0x7f207b1ef5b4] ../src/diag.c:1039 diag_emit
[0x7f207b27a4d2] ../src/util.c:585 fatal_trace
[0x7f207b224182] ../src/common.c:358 check_frozen_object_fault
[0x7f207b224182] ../src/object.c:343 check_frozen_object_fault
[0x7f207b27cc90] ../src/util.c:861 signal_handler
[0x7f207af8308f] (/lib/x86_64-linux-gnu/libc-2.31.so) 
[0x7f207b2524bb] ../src/tree.c:826 tree_set_value
[0x7f207b2369aa] ../src/psl/psl-node.c:931 simp_if
[0x7f207b2369aa] ../src/simp.c:1562 simp_tree.lto_priv.0
[0x7f207b222d51] ../src/object.c:675 object_rewrite_iter
[0x7f207b222c2d] ../src/object.c:707 object_rewrite
[0x7f207b222b18] ../src/object.c:749 object_rewrite
[0x7f207b222b18] ../src/object.c:749 object_rewrite
[0x7f207b222b18] ../src/object.c:749 object_rewrite
[0x7f207b222b18] ../src/object.c:749 object_rewrite
[0x7f207b222b18] ../src/object.c:749 object_rewrite
[0x7f207b222b18] ../src/object.c:749 object_rewrite
[0x7f207b25111a] ../src/tree.c:1286 tree_rewrite
[0x7f207b238cde] ../src/simp.c:1714 simplify_global
[0x7f207b23ab0c] ../src/elab.c:1330 elab_stmts
[0x7f207b23ab75] ../src/elab.c:1341 elab_stmts
[0x7f207b23ab75] ../src/elab.c:1341 elab_stmts
[0x7f207b23ab75] ../src/elab.c:1341 elab_stmts
[0x7f207b23c88c] ../src/elab.c:1827 elab_top_level.lto_priv.0
[0x7f207b280798] /usr/include/x86_64-linux-gnu/bits/stdlib.h:1896 elab
[0x7f207b280798] ../src/elab.c:456 elaborate
[0x7f207b281980] ../src/nvc.c:1878 process_command
[0x7f207b195533] ../src/nvc.c:2015 main
make: *** [Makefile:48: WORK/_WORK.AXI4_LITE_TEST_BENCH_32_32.elab.so] Error 1
nickg commented 9 months ago

Fixed, thanks!

ikwzm commented 9 months ago

Thanks!