L
LC
Hi,
I'm puzzled...
This code in (1) works great (function kind of obvious, to generate one
clock-width pulse every rise transition of a trigger signal).
while the code in (2) does not work. No errors/warnings
only fails to produce logic that works as expected.
(I originally thought of using this version (2) since
"tv_sr" is absolutely local to this process... but
stepped into this strange issue)(or pure ignorance !!!)
Anyone take out of the dark, please ??
Thanks.
(I'm using QuartusII-8.1)
Luis C.
(1)
....etc...
SIGNAL tv_sr: STD_LOGIC_VECTOR (1 downto 0);
....etc...
sample_trigger: PROCESS(clock)
BEGIN
IF (clock='1' AND clock'EVENT)
THEN
tv_sr(0) <= trig_in;
tv_sr(1) <= tv_sr(0);
IF (tv_sr="01") THEN trig_smp <='1';
ELSE trig_smp <='0';
END IF;
END IF;
END PROCESS sample_trigger;
(2)
....etc...
sample_trigger: PROCESS(clock)
VARIABLE tv_sr: STD_LOGIC_VECTOR (1 downto 0);
BEGIN
IF (clock='1' AND clock'EVENT)
THEN
tv_sr(0) := trig_in;
tv_sr(1) := tv_sr(0);
IF (tv_sr="01") THEN trig_smp <='1';
ELSE trig_smp <='0';
END IF;
END IF;
END PROCESS sample_trigger;
I'm puzzled...
This code in (1) works great (function kind of obvious, to generate one
clock-width pulse every rise transition of a trigger signal).
while the code in (2) does not work. No errors/warnings
only fails to produce logic that works as expected.
(I originally thought of using this version (2) since
"tv_sr" is absolutely local to this process... but
stepped into this strange issue)(or pure ignorance !!!)
Anyone take out of the dark, please ??
Thanks.
(I'm using QuartusII-8.1)
Luis C.
(1)
....etc...
SIGNAL tv_sr: STD_LOGIC_VECTOR (1 downto 0);
....etc...
sample_trigger: PROCESS(clock)
BEGIN
IF (clock='1' AND clock'EVENT)
THEN
tv_sr(0) <= trig_in;
tv_sr(1) <= tv_sr(0);
IF (tv_sr="01") THEN trig_smp <='1';
ELSE trig_smp <='0';
END IF;
END IF;
END PROCESS sample_trigger;
(2)
....etc...
sample_trigger: PROCESS(clock)
VARIABLE tv_sr: STD_LOGIC_VECTOR (1 downto 0);
BEGIN
IF (clock='1' AND clock'EVENT)
THEN
tv_sr(0) := trig_in;
tv_sr(1) := tv_sr(0);
IF (tv_sr="01") THEN trig_smp <='1';
ELSE trig_smp <='0';
END IF;
END IF;
END PROCESS sample_trigger;