Gast
#2061183
Hallo, ich bin gerade dabei mich in VHDL auf einem CPLD (Xillinx XL144) einzuarbeiten und benötige einen Timer, der konfigurierbar ein Clock-Signal erzeugt, das eine Periodendauer von 0,5s ,1s oder 2s aus einem 10MHz-Signal erzeugt. Die Umschaltung der Periodendauern soll 2 Inputs geschehen.(Binär-Codiert) Im Moment habe ich einen 1s Takt folgendermaßen realisiert: clk_mono: 10MHZ-Input clk: Signal das im Programm weiterverwendet wird und einstellbare Periodendauer haben soll signal counter : std_logic_vector ( 27 downto 0) := (others =>'0'); .... prescaler : process (clk_mono,) begin if rising_edge(clk_mono) then counter <= counter+1; end if; if counter = 5000000 then clk <= '1'; end if; if counter = 10000000 then clk <= '0'; counter <= (others =>'0'); end if; end process; ...... Nun habe ich bereits diverse Möglichkeite nausprobiert andere Periodendauern einstellen zu können: - den Counter nicht mit Konstanten vergleichen, sondern mit vorher zugewie ßenen Signalen -einen zweiten Counter nachschalten Beide Möglichkeiten haben einen relativ hohen Resourcenverbrauch. Wie würde man das Problem professionell lösen? Bin für Vorschläge dankbar! mfg Benedikt Lippert