Report some 2008 generic bug
Hello. I want to report some bugs in the generic part of the std VHDL 2008. I don't know if questa sim is supposed to handle all 2008 feature or just a subset. I had some problem with my code so I've tried to reduce the sample as small as possible.
The first one is a little one. It's deal with case-sensitive feature.
entity Test is end Test; architecture Bench of Test is function Length(x: in bit_vector) return natural is begin return x'length; end length; procedure payload generic (pure function Length(x: in bit_vector) return natural is <>) is begin end payload; procedure trigger is new payload; begin end Bench;
Here vcom report me: No visible function "Length" to use as default for interface subprogram...
To solve that, I must replace Length for length. Whenever I add an uppercase in the formal generic parameter, I can't use "<>".
And the second one is linked with the option -voptargs="+acc".
context Risc is library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; end context Risc; context Work.Risc; entity Memory is generic (Delay_Cycle: positive := 1); port (Clk: in std_logic); end Memory; architecture RTL of Memory is signal Delay: positive; procedure Triger_Crash generic (type Unknown) is begin end Triger_Crash; begin process (Clk) is procedure Triger_Crash_Natural is new Triger_Crash generic map (natural); begin if (rising_edge(Clk)) then Triger_Crash_Natural; if (Delay < Delay_Cycle) then Delay <= (Delay + 1); else Delay <= positive'low; end if; end if; end process; end RTL; context Work.Risc; entity Test is end Test; architecture Bench of Test is begin MEM: entity Work.Memory port map ('0'); end Bench;
It's throw me:
# ** Note: (vsim-3812) Design is being optimized...
# ** Fatal: Unexpected signal: 11.
# ** Error: (vopt-2064) Compiler back-end code generation process terminated with code 232.
# ** Note: (vsim-12126) Error and warning message counts have been restored: Errors=2, Warnings=0.
# Error loading design
If I remove either the generic procedure or the delay incrementation, the bug disappear.
I hope these report help. Thanks you.