Vhd Taschenrechner - Kann Fehler in meinem Code nicht finden

Status
Für weitere Antworten geschlossen.

Bugman

Newbie
Registriert
Dez. 2020
Beiträge
2
Servus Leute,

wir sollen für Digitaltechnik einen VHD Taschenrechner im Programm Lattice Diamond schreiben. Faktisch bin ich fertig mit dem Code allerdings zeigt mir Lattice an das ich einen Fehler habe beim "case C" Teil allerdings weiß ich nicht wieso. ^^

Könnte mal jemand der sich auskennt fix drüber gucken ?


Gruß Simon

p.s. Ja Tatsache ist eine "Übung" die wir bestehen müssen ^^, ich will aber nicht das ihr mir den Code schreibt weil ich wills ja lernen. Nur finde ich seit 3h den Fehler nicht und ich bin langsam am verzweifeln also frage ich jetzt einfach mal um Hilfe.


library ieee;

use work.all;
use ieee.numeric_std.all;
use ieee.std_logic_1164.all;


entity multiplexer is
port (
A,B : in std_logic_vector (2 downto 0);
C : in std_logic_vector (1 downto 0);
Z : out std_logic_vector (3 downto 0)

);
end entity multiplexer;



architecture struct of Multiplexer is



signal z_1, Z_2, z_3, z_4: std_logic_vector (3 downto 0);

begin
Gate0: entity work.multiplexer (addierer)
port map (A,B,z_1);
Gate1: entity work.multiplexer (subtraktion)
port map (A,B,z_2);
Gate2: entity work.multiplexer (multiplikation)
port map (A,B,z_3);
Gate3: entity work.multiplexer (division)
port map (A,B,z_4);


process(C, z_1, z_2, z_3, z_4) is
case C is
begin
when "00" => Z <= z_1;
when "01" => Z <= z_2;
when "10" => Z <= z_3;
when "11" => Z <= z_4;
when others => Z <= "0000";

end case;
end process;
end architecture struct;
 

Anhänge

  • Übung 2.PNG
    Übung 2.PNG
    92,4 KB · Aufrufe: 227
Zuletzt bearbeitet:
C:
library ieee;

use work.all;
use ieee.numeric_std.all;
use ieee.std_logic_1164.all;


entity multiplexer is
port (
A,B : in std_logic_vector (2 downto 0);
C : in std_logic_vector (1 downto 0);
Z : out std_logic_vector (3 downto 0)

);
end entity multiplexer;



architecture struct of Multiplexer is



signal z_1, Z_2, z_3, z_4: std_logic_vector (3 downto 0);

begin
Gate0: entity work.multiplexer (addierer)
port map (A,B,z_1);
Gate1: entity work.multiplexer (subtraktion)
port map (A,B,z_2);
Gate2: entity work.multiplexer (multiplikation)
port map (A,B,z_3);
Gate3: entity work.multiplexer (division)
port map (A,B,z_4);


process(C, z_1, z_2, z_3, z_4) is
case C is
begin
when "00" => Z <= z_1;
when "01" => Z <= z_2;
when "10" => Z <= z_3;
when "11" => Z <= z_4;
when others => Z <= "0000";
end case;
end process;
end architecture struct;

Bitte nutz doch beim nächsten Mal die Code-Funktion. Macht es etwas leserlicher 😅
 
  • Gefällt mir
Reaktionen: Bugman
Sorry ^^, erster Therad.
Aber klar mach ich ab jetzt, danke. =)
 
  • Gefällt mir
Reaktionen: kamanu
Hausaufgaben? Sieht so aus.
Finde den Syntax-Fehler, der Dir da ausgewiesen wird und den Rest dazu.
Zur Not den fragen der die Aufgabe gegeben hat.

HangClosed.png


BFF
 
  • Gefällt mir
Reaktionen: aw48 und BeBur
Status
Für weitere Antworten geschlossen.
Zurück
Oben