Matze85
Registrierter Benutzer
Beiträge: 1
|
Erstellt: 06.01.07, 00:24 Betreff: Volladdierer, Ripple Carry und weitere Aufgaben
drucken
Thema drucken weiterempfehlen
|
|
|
Hallo,
ich bin neu hier und versuche mich gerade in VHDL. Da ich probleme den ModelSim von Xilinx zum laufen zu bringen, besteht für mich nur die Möglichkeit, die Syntax prüfen zu lassen und die stimmt so. Leider kann ich mir keine Signale anschauen, um die Semantik meiner Ideen zu prüfen:
Zu meiner 1. Aufgabe: Entwerfen Sie ein Volladdierer in VHDL!
Das war an sich laut der Schaltungstabelle leicht:
library IEEE; use IEEE.std_logic_1164.all;
entity VA is port ( A, B, C0 : in std_logic; -- Eingangssignale C1, S : out std_logic ); -- Ausgangssignale end VA;
architecture VERHALTEN of VA is -- Beschreibung der Funktion
begin S <= A xor B xor CO; -- Summe Ausgang C1 <= (A and B) or (CO and (A xor B)); -- Ausgang für Übertrag end VERHALTEN;
und die dazugehörige Testbench:
library IEEE; use IEEE.std_logic_1164.all;
entity TEST_VA is end TEST_VA;
architecture VERHALTEN of TEST_VA is
component VA port ( A, B, C0 : in std_logic; C1, S : out std_logic); end component; signal A, B, C0, C1, S : std_logic; begin -- VERHALTEN UUT : VA port map ( A => A, B => B, C0 => C0, C1 => C1, S => S); -- HStimuli einfügen DATEN : process begin wait for 100 ns; -- Initialisierung A <= '0'; B <= '0'; C0 <= '0'; wait for 100 ns; B <= '1'; wait for 100 ns; B <= '0'; A <= '1'; wait for 100 ns; B <= '1'; wait for 100 ns; A <= '0'; B <= '0'; wait for 100 ns; -- C0 = 1 A <= '0'; B <= '0'; C0 <= '1'; wait for 100 ns; B <= '1'; wait for 100 ns; B <= '0'; A <= '1'; wait for 100 ns; B <= '1'; wait for 100 ns; A <= '0'; B <= '0'; C0 <= '0';
end process; -- Daten
end VERHALTEN;
Wäre das soweit okay?
Die anderen Sachen sind noch nicht ganz fertig und benötigen noch etwas Feintuning und ich werd sie erst morgen Abend online stellen.
Vielen dank für die Anregungen!
|
|