VHDL-Forum - Allgemeines

Komme nicht weiter :(

Komme nicht weiter :(

Hallo,

bin gerade dabei ein VHDL Programm zu schreiben und komme nicht weiter.

Aufgabe ist es einen Automaten zu programmieren, der nach Starten, einen Ultraschall impuls auslöst, gleichzeitig einen Zähler startet und nach Rückmeldung des Sensors den Zählerstand als HEX-Wert auf 4 7-Seg-Anzeigen ausgibt.

Prinzipiell funktioniert alles bis auf eine Kleinigkeit beim Sensor.
Die Eigenart des Sensor ist, dass er seinen Ausgang beim Start auf High setzt und nach Empfang des Echos auf Low geht.
Und diese fallende Flanke des Sensorausgangs soll Bedingung im Automaten sein, in den nächsten Zustand zu springen.
Und diese Bedingung bekomme ich nicht hin.

Das Programm hat leider 230 Zeilen Code. Ist ein bissle viel um alles hier reinzukopieren.

Wenn mir jemand weiterhelfen kann bitte die Mail-Adresse posten, dann schick ich das Programm zu. Oder gleich bei mir melden unter var m = String.fromCharCode(109,97,105,108,116,111)+':';var e = 'achimhartmann'+String.fromCharCode(64)+'gmx'+String.fromCharCode(46)+'de';document.writeln(''+e+'');achimhartmann@gmxde mit Betreff VHDL oder so.

Vielen Dank schonmal.

Grüßle
Achim

Re: Komme nicht weiter :(

Hier doch noch der Code...

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;

entity Digitales_Messen is
Port ( CLK : in std_logic;
RESET : in std_logic;
ENABLE : in std_logic;
Start : in std_logic;
StartMessung: out std_logic;
Stop : in std_logic;
Neustart : in std_logic;
AN0 : inout std_logic;
AN1 : inout std_logic;
AN2 : inout std_logic;
AN3 : inout std_logic;
LED : out std_logic_vector(7 downto 0));
end Digitales_Messen;

architecture Behavioral of Digitales_Messen is
type statetype is (Ausgangszustand, Zaehler, Ausgabe);
signal state, NextState: statetype;
signal ctr : std_logic_vector(12 downto 0);
signal counterm : std_logic_vector(9 downto 0);
signal Zaehlerstart : std_logic;
signal Ausgabestart : std_logic;
signal Ausgangsstart: std_logic;
signal counter : std_logic_vector(18 downto 0);
signal HEX0 : std_logic_vector (3 downto 0);
signal HEX1 : std_logic_vector (3 downto 0);
signal HEX2 : std_logic_vector (3 downto 0);
signal HEX3 : std_logic_vector (3 downto 0);
signal Ende : std_logic;

begin

--StateTransition:
process (CLK, RESET)
begin
if RESET = '1' then state