-- sreg ist das schieberegister. -- zaehler_sr ist ein zähler fürs schieberegister. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity dcf_error is Port ( rst : in std_logic; clk_int : in std_logic; sreg : in std_logic_vector(58 downto 20); dcf_fehler : out std_logic); end dcf_error; architecture dcf_error of dcf_error is begin error: process(clk_int, rst) begin if rst='0' then dcf_fehler <= '0'; elsif rising_edge(clk_int) then if zaehler_sr = 59 or zaehler_sr = 01 then ----------Kontrolle des DCF-Signal´s im Schieberegister "Minute"---------- dcf_fehler <= ((((((((sreg(21) xor sreg(22)) xor sreg(23)) xor sreg(24)) xor -- Fehler durch ungerade sreg(25)) xor sreg(26)) xor sreg(27)) xor sreg(28)) -- Zahl logischer Einsen! or (sreg(24) and (sreg(23) or sreg(22))) -- Fehler durch nicht mögliche Kombinationen or (sreg(27) and sreg(26))) -- Fehler durch nicht mögliche Kombinationen or ----------Kontrolle des DCF-Signal´s im Schieberegister "Stunde"---------- (((((((sreg(29) xor sreg(30)) xor sreg(31)) xor sreg(32)) xor -- Fehler durch ungerade sreg(33)) xor sreg(34)) xor sreg(35)) -- Zahl logischer Einsen! or (sreg(32) and (sreg(31) or sreg(30))) -- Fehler durch nicht mögliche Kombinationen or (sreg(34) and sreg(33))) -- Fehler durch nicht mögliche Kombinationen or ----------Kontrolle des DCF-Signal´s im Schieberegister "Datum"---------- (((((((((((((((((((((((sreg(36) xor sreg(37)) xor sreg(38)) xor sreg(39)) xor -- Fehler durch ungerade sreg(40)) xor sreg(41)) xor sreg(42)) xor sreg(43)) xor -- Zahl logischer Einsen! sreg(44)) xor sreg(45)) xor sreg(46)) xor sreg(47)) xor sreg(48)) xor sreg(49)) xor sreg(50)) xor sreg(51)) xor sreg(52)) xor sreg(53)) xor sreg(54)) xor sreg(55)) xor sreg(56)) xor sreg(57)) xor sreg(58)) or (sreg(39) and (sreg(38) or sreg(37))) -- Fehler tag_ein > 9 or (not sreg(36) and not sreg(37) and not sreg(38) and not sreg(39))-- Fehler tag_ein = 0 or (sreg(41) and sreg(40)) -- Fehler tag_zeh = 3 or (not sreg(44) and not sreg(43) and not sreg(42)) -- Fehler wochent = 0 or (sreg(48) and (sreg(47) or sreg(46))) -- Fehler mon_ein > 9 or (not sreg(48) and not sreg(47) and not sreg(46) and not sreg(45))-- Fehler mon_ein = 0 or (sreg(53) and (sreg(52) or sreg(51))) -- Fehler jah_ein > 9 or (sreg(57) and (sreg(56) or sreg(55)))) -- Fehler jah_zeh > 9 or ----------Kontrolle des Startbit´s der kodierten Zeitinformation---------- not sreg(20); end if; end if; -- clk end process error; end dcf_error;