D
Dave
Guest
I am currently using records to group signals together in some
synthesizable VHDL code, for readability as much as anything else. The
signals within the record are driven by one of three processes, with
each element of the record having only one driver. This synthesized
fine in ISE 9.2, but now that I want to simulate it, the ISE Lite
simulator is complaining about a signal having multiple drivers. Does
anyone know what the LRM says here? I know that the record is,
overall, decared as a signal, and could be seen as having multiple
drivers, but I'm finding this interpretation rather inconvenient right
now... and am surprised that the synthesizer and simulator aren't on
the same page with this.
Example code:
type recType is record
a: std_logic;
b: std_logic;
end record;
signal rec : recType;
process(clk)
if rising_edge(clk) then
rec.a <= input_1;
end if;
end process;
process(clk)
if rising_edge(clk) then
rec.b <= input_2;
end if;
end process;
synthesizable VHDL code, for readability as much as anything else. The
signals within the record are driven by one of three processes, with
each element of the record having only one driver. This synthesized
fine in ISE 9.2, but now that I want to simulate it, the ISE Lite
simulator is complaining about a signal having multiple drivers. Does
anyone know what the LRM says here? I know that the record is,
overall, decared as a signal, and could be seen as having multiple
drivers, but I'm finding this interpretation rather inconvenient right
now... and am surprised that the synthesizer and simulator aren't on
the same page with this.
Example code:
type recType is record
a: std_logic;
b: std_logic;
end record;
signal rec : recType;
process(clk)
if rising_edge(clk) then
rec.a <= input_1;
end if;
end process;
process(clk)
if rising_edge(clk) then
rec.b <= input_2;
end if;
end process;