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;
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
Zuletzt bearbeitet: