Hallo zusammen, ich habe einen Frequenzhalbierer programmiert, den ich dem Forum respektive einer Diskussion nicht vorenthalten möchte.... Zwecks Kritik und Verbesserungsvorschläge wäre ich dankbar...!! Die Ausgangsclock YCLK ist zudem zwecks einer nachfolgenden Datenverarbeitung mit YCLK auf die Systemclock clk einsynchronisiert. Gruß Tom
Hy kannste das: rising_XCLK_in <= (XCLK_in_tmp = '1') and (XCLK_in_sync = '0'); if rising_XCLK_in then nicht einfach als if schreiben. if (XCLK_in_tmp = '1') and (XCLK_in_sync = '0') then wäre meiner meinung einfacher zu verstehen und das signal rising_XCLK_in entfällt. den counter kannst du auch auf integer range 0 to 1 stellen, da du die 2 ja eh nicht benötigst. du könntest das aber noch vereinfachen indem du schreibst architecture Behavioral of XCLK_YCLK_Adaption is Signal XCLK_in_tmp : std_logic; Signal XCLK_in_sync : std_logic; signal yclk_out_tmp : std_logic; begin clock_adaption : process(rst,clk) begin if (rst = '0') then YCLK_out_tmp <= '0'; elsif (rising_edge(clk)) then XCLK_in_tmp <= XCLK_in; XCLK_in_sync <= XCLK_in_tmp; if (XCLK_in_tmp = '1') and (XCLK_in_sync = '0') then YCLK_out_tmp <= not yclk_out_tmp; end if; end if; end process clock_adaption; yclk_out <= yclk_out_tmp; end Behavioral; mfg mockup
Hi warum so kompliziert ? es geht auch einfacher und funktioniert wunderbar: process (reset, clk) begin if rising_edge(clk) then clk_half <= not clk_half end if; end process Gruß Markus
Hallo Mockup, danke Deiner Vorschläge. Jepp, ist richtig, dass der Counter einen Bereich von 0 bis 1 hat. Aber es scheint wohl mit der Anweisung YCLK_out_tmp <= not YCLK_out_tmp völlig überflüssig zu sein. Nur die Ausgabe von YCLK_out müßte mE im Prozess erfolgen.... @ Markus: im Endeffekt geht Mockups Tip mit Deinem konform..... Vielen Dank Euch beiden!! Gruß Tom
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.