Dieser Code ist für einen PRBS (Pseudo-Random Binary Sequence) -Empfänger. es soll drei Werte annehmen und einen PRBS-Generator simulieren und die erhaltenen Werte mit den erzeugten Werten überprüfen. Aber der Code-Fehler für Schlüsselwörter zeigt wie die beginnen, sind bereits vorhandenvhdl Fehlercode 10500 für bereits vorhandene Schlüsselwörter
library ieee;
use ieee.std_logic_1164.all;
use ieee. std_logic_arith.all;
use ieee. std_logic_unsigned.all;
entity receiver is
port(
inp : in std_logic;
clock : in std_logic;
count : out std_logic_vector(4 downto 0);
check : out std_logic);
end receiver;
architecture rec of receiver is
signal P : std_logic_vector(2 downto 0);
signal O : std_logic_vector(2 downto 0);
process (clock)
variable cnt : integer range 0 to 3;
begin
if clock'event and clock='1' then
P <= inp & P(2 downto 1);
cnt<=cnt+1;
end if;
if (cnt = 3) then
O<=P;
elseif (cnt >3)
O <= inp & O(2 downto 1);
end if;
if((O(2) xor O(0)) = P(0))
check <= '0';
else
check <= '1';
count <= count +1;
end if;
end process;
end rec;
Fehler (10500): VHDL Syntaxfehler bei receiver.vhd (18) in der Nähe von Text "Prozess"; erwartet "begin" oder eine Deklarationsanweisung
Fehler (10500): VHDL Syntaxfehler bei receiver.vhd (21) in der Nähe von Text "if"; "end" oder "(" oder eine Kennung ("if" ist ein reserviertes Schlüsselwort) oder eine gleichzeitige Anweisung
Error (10500): VHDL-Syntaxfehler bei receiver.vhd (21) next text "und "; erwartet" (", oder" '"oder". "
Fehler (10500): VHDL-Syntaxfehler bei receiver.vhd (24) in der Nähe von Text" if "; erwartet"; "oder eine Kennung ("if" ist ein reservierter keyword) oder "Architektur"
error (10500): VHDL Syntaxfehler bei receiver.vhd (25) in der Nähe von text "dann"; erwartet "< ="
error (10500): VHDL-Syntaxfehler bei receiver.vhd (28) nahe Text "O"; erwartet "(" oder "'", oder "."
Fehler (10500): VHDL-Syntaxfehler bei receiver.vhd (29) in der Nähe von Text "if"; erwartet ";" oder eine Kennung ("if "ist ein reserviertes Schlüsselwort), oder "Architektur"
error (10500): VHDL Syntaxfehler bei receiver.vhd (31) in der Nähe von text "check"; erwartet" < =“
error (10500): VHDL-Syntaxfehler bei receiver.vhd (32) in der Nähe von Text "else"; erwartet "end" oder "(" oder eine Kennung ("else" ist ein reserviertes Schlüsselwort) oder eine gleichzeitige Anweisung
Fehler (10500): VHDL-Syntaxfehler bei receiver.vhd (35) nahe Text "wenn"; erwarten „“ oder eine Kennung („if“ ist ein reserviertes Schlüsselwort) oder „Architektur“
Versuchen Sie, sich rückwärts zu arbeiten, indem Sie den Code entfernen, bis er kompiliert wird, und fügen Sie dann Code hinzu, um zu verstehen, warum Sie ihn brechen. Wenn Sie dann den Syntaxfehler nicht verstehen, können Sie ihm ein [minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) hinzufügen. Ziehen Sie auch die Verwendung des ModelSim-Simulators für die Erstkompilierung in Betracht, da die Bearbeitungszeit kürzer ist als für Quartus. Altera ModelSim Starter Edition ist kostenlos. –
Oder schauen Sie sich den ersten Fehler an. Sehen Sie sich ein Beispiel für eine 'Architektur' an und vergleichen Sie es mit Ihrem Code. Sehen Sie nach, ob ein Unterschied zwischen den Stichwörtern in der Fehlermeldung besteht. Tipp: Es gibt. –
Ein fehlendes reserviertes Wort ('begin'), das den Signaldeklarationen folgt und die deklarativen Elemente der Architektur von gleichzeitigen Anweisungen trennt (wie eine Prozessanweisung). Du buchstabierst "elsif" als elseif, und es fehlt ein 'then' die nächste if-Anweisung fehlt ein' then'. 'cnt' ist kein Signal, eine Variable ein anderes compould-Trennzeichen (': = '). (Und eine eingeschränkte Ganzzahl macht keine modulare Arithmetik). 'count' ist ein Mode-Out-Port und kann nicht gelesen werden. Und Sie sollten 'count' nicht basierend auf einer kombinatorischen Freigabe erhöhen (im' else' von 'if' nennen wir das einen auffälligen Oszillator). – user1155120