Hallo zusammen,
ich möchte gerne meinen Systemtakt für Debug-Zwecke auf ein Pad umleiten
und ihn damit messbar machen.
Dabei möchte ich gerne mit einem Vektor den Teiler einstellen können.
Ich hab es jetzt so umgesetzt:
1 | p_divide_sys_clk : PROCESS (NRES, CLK)
|
2 | BEGIN
|
3 | IF NRES = '0' THEN
|
4 | sys_clk_cnt <= (OTHERS => '0');
|
5 | sys_clk_divide <= '0';
|
6 | ELSIF rising_edge(CLK) THEN
|
7 | sys_clk_cnt <= sys_clk_cnt + 1;
|
8 | CASE FREQ_DIVIDE IS
|
9 | WHEN "11" => sys_clk_divide <= sys_clk_cnt(3); -- divide by 16
|
10 | WHEN "10" => sys_clk_divide <= sys_clk_cnt(2); -- divide by 8
|
11 | WHEN "01" => sys_clk_divide <= sys_clk_cnt(1); -- divide by 4
|
12 | WHEN OTHERS => sys_clk_divide <= sys_clk_cnt(0); -- divide by 2
|
13 | END CASE;
|
14 | END IF;
|
15 | END PROCESS;
|
sys_clk_divide wird dann an anderer Stelle auf das PAD geschaltet.
Gibt es noch eine andere Methode, das noch effizienter bzw. noch
variabler zu beschreiben?
Vielen Dank!
Roman