R
Roman Himmes
Guest
Hello,
I am very new to VHDL and I still haven't figured everything out.
In this code I get: "Signal tmprr cannot be synthesized, bad synchronous
description" I understand that this is due to possible that more than one
process is accessing Signals ...
My Process in which I have the Problem is this code:
RR_PROCESS: process(RR,Send,maxDelay)
variable tmprr : std_logic_vector(11 downto 0) := "000000000000";
begin
if RR='1' and RR'event then tmprr := tmprr + 1;
else
if Send='1' then
case maxDelay is
when "00" => tmprr := To_StdLogicVector( To_BitVector(tmprr) sla 1);
when "01" => tmprr := To_StdLogicVector( To_BitVector(tmprr) sla
2);
when others => tmprr := To_StdLogicVector( To_BitVector(tmprr) sla
3);
end case;
sRRight <= EXT(tmprr,8);
tmprr := "000000000000";
end if;
end if;
end process;
Other relevant signals:
signal maxDelay : std_logic_vector (1 downto 0) := "00";
signal Send : std_logic := '0';
and Ports:
RR : in std_logic;
sRRight : out std_logic_vector(7 downto 0));
Where is the problem ? I cannot see it !
Thanx for any comment
Roman Himmes
I am very new to VHDL and I still haven't figured everything out.
In this code I get: "Signal tmprr cannot be synthesized, bad synchronous
description" I understand that this is due to possible that more than one
process is accessing Signals ...
My Process in which I have the Problem is this code:
RR_PROCESS: process(RR,Send,maxDelay)
variable tmprr : std_logic_vector(11 downto 0) := "000000000000";
begin
if RR='1' and RR'event then tmprr := tmprr + 1;
else
if Send='1' then
case maxDelay is
when "00" => tmprr := To_StdLogicVector( To_BitVector(tmprr) sla 1);
when "01" => tmprr := To_StdLogicVector( To_BitVector(tmprr) sla
2);
when others => tmprr := To_StdLogicVector( To_BitVector(tmprr) sla
3);
end case;
sRRight <= EXT(tmprr,8);
tmprr := "000000000000";
end if;
end if;
end process;
Other relevant signals:
signal maxDelay : std_logic_vector (1 downto 0) := "00";
signal Send : std_logic := '0';
and Ports:
RR : in std_logic;
sRRight : out std_logic_vector(7 downto 0));
Where is the problem ? I cannot see it !
Thanx for any comment
Roman Himmes