Tag auch.
Entweder ich steh auf dem Schlauch oder der Simulator hat ein Problem.
Ich arbeite im Moment ein Buch über Synthese durch, in dem für diverse
Schaltungen verschiedene mögliche Implementierungen vorgestellt werden.
Naja, lange Rede, kurzer Sinn: Code eines Komparators:
1 | p0 :PROCESS (a, b) IS
|
2 | BEGIN
|
3 | less <= '0';
|
4 | equal <= '1';
|
5 | greater <= '0';
|
6 | FOR index IN a'RANGE LOOP
|
7 | IF a(index) AND (NOT b(index)) THEN
|
8 | equal <= '0';
|
9 | greater <= '1';
|
10 | EXIT;
|
11 | ELSIF (NOT a(index)) AND b(index) THEN
|
12 | less <= '1';
|
13 | equal <= '0';
|
14 | EXIT;
|
15 | END IF;
|
16 | END LOOP;
|
17 | END PROCESS p0;
|
18 |
|
19 | END ARCHITECTURE rtl1;
|
Rein funktionell sieht der Code fehlerfrei aus. Nur meckert mir der
Simulator rum:
gle.vhd:34:19: no function declarations for operator "and"
gle.vhd:38:28: no function declarations for operator "and"
Ich bin ratlos... AND ist doch im std_logic_1164 Library auch für
std_logic-Typen definiert...
Sonst muss ich halt mal in GHDL-Maillist fragen.
Danke für Anregungen.
T.M.
=============================
http://editthis.info/freefpga
=============================