G
Gary Thorpe
Guest
Hi,
I am having a problem using aggregates to assign signal values. My code is:
(in entity port declaration)
SELECTED: out std_ulogic_vector(7 downto 0);
UDQM, LDQM: out std_ulogic
(in architecture of entity)
variable set_value: std_ulogic_vector(9 downto 0);
(in body of architecture)
--(SELECTED, UDQM, LDQM) <= set_value; -- this gives trouble
-- these are fine
SELECTED <= set_value(9 downto 2);
UDQM <= set_value(1);
LDQM <= set_value(0);
Is there a way to assign the signals as a group or is it just not valid VHDL code
(I can do the equivalent in Verilog by doing {SELECT, UDQM, LDQM} = set_value)?
The errors I get when I try to use the aggregate are:
(SELECTED, UDQM, LDQM) <= set_value;
^
Warning: vhdlan,734 file.vhd(62):
Discrete range is not consistent with corresponding index subtype (too few
elements).
(SELECTED, UDQM, LDQM) <= set_value;
^
**Error: vhdlan,720 file.vhd(62):
Name is not of the required type; STD_ULOGIC expected.
This is using the 'vhdlan' tool in Synopsys.
I am having a problem using aggregates to assign signal values. My code is:
(in entity port declaration)
SELECTED: out std_ulogic_vector(7 downto 0);
UDQM, LDQM: out std_ulogic
(in architecture of entity)
variable set_value: std_ulogic_vector(9 downto 0);
(in body of architecture)
--(SELECTED, UDQM, LDQM) <= set_value; -- this gives trouble
-- these are fine
SELECTED <= set_value(9 downto 2);
UDQM <= set_value(1);
LDQM <= set_value(0);
Is there a way to assign the signals as a group or is it just not valid VHDL code
(I can do the equivalent in Verilog by doing {SELECT, UDQM, LDQM} = set_value)?
The errors I get when I try to use the aggregate are:
(SELECTED, UDQM, LDQM) <= set_value;
^
Warning: vhdlan,734 file.vhd(62):
Discrete range is not consistent with corresponding index subtype (too few
elements).
(SELECTED, UDQM, LDQM) <= set_value;
^
**Error: vhdlan,720 file.vhd(62):
Name is not of the required type; STD_ULOGIC expected.
This is using the 'vhdlan' tool in Synopsys.