M
Manfred Balik
Guest
I want to build an easy decode-logic in VHDL.
My problem is that the value I write to the output isn't stored till it
should change :-(
Here my simplified code:
testprocess : PROCESS (IN1,IN2)
BEGIN
IF (IN1 = '1') AND (IN2 = '0') THEN
OUT0 <= '1';
ELSIF (IN1 = '0') AND (IN2 = '1') THEN
OUT0 <= '0';
END IF;
END PROCESS testprocess;
The Logic works like:
If IN1=1 and IN2=0 the Output is 1 -> OK
If IN1 and IN2 are both 0 the value of the Output is not stored (like I
want) but it goes to zero :-((((
but it should store the 1 till IN1=0 and IN0=1 !!!!
My Design Software Altera Quartus II 5.0 shows this warnings:
Warning: VHDL Process Statement warning at block_name.vhd(54): signal or
variable "OUT0" may not be assigned a new value in every possible path
through the Process Statement. Signal or variable "OUT0" holds its previous
value in every path with no new value assignment, which may create a
combinational loop in the current design.
Critical Warning: Design Assistant warning: Design should not contain
combinational loops. Found 1 combinational loop(s) related to this rule.
If I use a clock in the Process it works like a want it to do, but I don't
want to use a clock!
How must the code look like???
Is a process-statement not the correct choice in VHDL???
please help, Manfred
My problem is that the value I write to the output isn't stored till it
should change :-(
Here my simplified code:
testprocess : PROCESS (IN1,IN2)
BEGIN
IF (IN1 = '1') AND (IN2 = '0') THEN
OUT0 <= '1';
ELSIF (IN1 = '0') AND (IN2 = '1') THEN
OUT0 <= '0';
END IF;
END PROCESS testprocess;
The Logic works like:
If IN1=1 and IN2=0 the Output is 1 -> OK
If IN1 and IN2 are both 0 the value of the Output is not stored (like I
want) but it goes to zero :-((((
but it should store the 1 till IN1=0 and IN0=1 !!!!
My Design Software Altera Quartus II 5.0 shows this warnings:
Warning: VHDL Process Statement warning at block_name.vhd(54): signal or
variable "OUT0" may not be assigned a new value in every possible path
through the Process Statement. Signal or variable "OUT0" holds its previous
value in every path with no new value assignment, which may create a
combinational loop in the current design.
Critical Warning: Design Assistant warning: Design should not contain
combinational loops. Found 1 combinational loop(s) related to this rule.
If I use a clock in the Process it works like a want it to do, but I don't
want to use a clock!
How must the code look like???
Is a process-statement not the correct choice in VHDL???
please help, Manfred