T
Tuukka Toivonen
Guest
Can anyone tell me why I'm getting the error messages
(and how to fix them):
ERROR: vhdl-bug.vhdl(25): Ambiguous type: ramy_arw_t or ramy_drw_t.
ERROR: vhdl-bug.vhdl(25): Illegal type conversion
ERROR: vhdl-bug.vhdl(26): Ambiguous type: ramy_arw_t or ramy_drw_t.
ERROR: vhdl-bug.vhdl(26): Illegal type conversion
ERROR: vhdl-bug.vhdl(29): VHDL Compiler exiting
from QuickHDL qvhcom v8.5_4.6f Feb 18 1997 SunOS 5.9 with the
following program:
use STD.TEXTIO.all;
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
entity ME is end;
architecture RTL of ME is
subtype dim1 is std_ulogic_vector(16 downto 0);
type ramy_drw_t is array(0 to 199) of dim1;
type ramy_arw_t is array(0 to 199) of std_ulogic_vector(7 downto 0);
signal mb_y : std_ulogic_vector(4 downto 0);
signal mb_x : std_ulogic_vector(4 downto 0);
signal xfc_blk_y : std_ulogic;
signal xfc_blk_x : std_ulogic;
signal xfc_rd_y : std_ulogic_vector(3 downto 0);
signal xfc_rd_x : std_ulogic_vector(3 downto 0);
begin
process is
variable fby: unsigned(8 downto 0);
variable fbx: unsigned(8 downto 0);
begin
fby := unsigned(mb_y & xfc_blk_y & xfc_rd_y(2 downto 0)); -- line 25
fbx := unsigned(mb_x & xfc_blk_x & xfc_rd_x(2 downto 0)); -- line 26
wait;
end process;
end;
(and how to fix them):
ERROR: vhdl-bug.vhdl(25): Ambiguous type: ramy_arw_t or ramy_drw_t.
ERROR: vhdl-bug.vhdl(25): Illegal type conversion
ERROR: vhdl-bug.vhdl(26): Ambiguous type: ramy_arw_t or ramy_drw_t.
ERROR: vhdl-bug.vhdl(26): Illegal type conversion
ERROR: vhdl-bug.vhdl(29): VHDL Compiler exiting
from QuickHDL qvhcom v8.5_4.6f Feb 18 1997 SunOS 5.9 with the
following program:
use STD.TEXTIO.all;
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
entity ME is end;
architecture RTL of ME is
subtype dim1 is std_ulogic_vector(16 downto 0);
type ramy_drw_t is array(0 to 199) of dim1;
type ramy_arw_t is array(0 to 199) of std_ulogic_vector(7 downto 0);
signal mb_y : std_ulogic_vector(4 downto 0);
signal mb_x : std_ulogic_vector(4 downto 0);
signal xfc_blk_y : std_ulogic;
signal xfc_blk_x : std_ulogic;
signal xfc_rd_y : std_ulogic_vector(3 downto 0);
signal xfc_rd_x : std_ulogic_vector(3 downto 0);
begin
process is
variable fby: unsigned(8 downto 0);
variable fbx: unsigned(8 downto 0);
begin
fby := unsigned(mb_y & xfc_blk_y & xfc_rd_y(2 downto 0)); -- line 25
fbx := unsigned(mb_x & xfc_blk_x & xfc_rd_x(2 downto 0)); -- line 26
wait;
end process;
end;