Autor |
Beitrag |
Marc10k
Neuling
Beiträge: 7
|
Erstellt: 08.12.04, 20:11 Betreff: Linear Feedback Shit Register
drucken
Thema drucken weiterempfehlen
|
|
|
Ich möchte ein 4bit LFSR aufbauen mit meine DATA als Eingang aufbauen. Nur leider kann ich nicht meinem Eingang XOR in das LFSR verbinden. Es kommt immer folgende Fehlermeldung: ERROR:HDLParsers:808 - D:/Studium/VHLD-Project/decoder.vhd Line 35. xor can not have such operands in this context.
Kann jemand mir sagen was ich falsch mache? Ich habe den Eingang als bit und das LFSR ist als bit_vector und wenn ich nur ein bit nehme, sollte doch beides gleich sein?
Hier mein Code library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.std_logic_1164.all;
entity decoder is Port ( header_flag : out std_logic; message_flag : out std_logic; checksum_flag : out std_logic; data : in std_logic; reset : in std_logic; clk : in std_logic); end decoder;
architecture Behavioral of decoder is
signal LFSR : bit_vector(3 downto 0); signal R : bit_vector(3 downto 0); signal temp: std_logic;
begin process(clk, reset) variable feedback: bit; variable temp: bit;
begin if reset = '1' then header_flag <= '0'; message_flag <= '0'; checksum_flag <= '0'; LFSR <= "1111"; elsif rising_edge(clk) then feedback := LFSR(3) xor LFSR(0); LFSR(0) <= feedback xor data ; --hier soll der Fehler sein LFSR(1) <= LFSR(0); LFSR(2) <= LFSR(1); LFSR(3) <= LFSR(2); end if; end process; end Behavioral;
|
|
nach oben |
|
|
Ralf Rascher
Gast
|
Erstellt: 13.12.04, 11:06 Betreff: Re: Linear Feedback Shit Register
drucken
weiterempfehlen
|
|
|
Hallo,
ich bin mir zwar nicht ganz sicher, (bin leider auch nur Anfänger), würde aber mal überprüfen, ob man eine Variable (feedback) und ein Signal (data) in diesem Kontext mit "xor" verknüpfen kann.
Gruß
Ralf
|
|
nach oben |
|
|
witteks
Stammgast
Beiträge: 27 Ort: Cottbus
|
Erstellt: 03.01.05, 09:57 Betreff: Re: Linear Feedback Shit Register
drucken
weiterempfehlen
|
|
|
Hallo Mark10k!
Du hast sicher bestimmt schon herausbekommen, aber ich denke es liegt daran, dass du Variablen, Signale und Ports verschiedener Typen verwendet hast.
Port : data (Typ - std_logic) Variable : feedback (Typ - bit) Signal : LSFR (Typ - bit_vector)
Du darfst bei Zuweisungen untereinander nur gleiche Typen benutzen oder Konvertierungen vornehmen. Ich empfehle dir generell nur std_logic einzusetzen, weil damit mehr Zustände eines Signals betrachtet werden können, als beim Typ bit (siehe Dokumentation).
Sven
|
|
nach oben |
|
|
cheshmgir2020
Stammgast
Beiträge: 24
|
|
nach oben |
|
|
|