S
sundar_ece
Guest
Hi All,Ho bisogno del vostro aiuto per capire questa logica frazionata divisore che
è implementato nel codice seguente.
--************************************************ ******
ClkDiv2: processo (NMR, Clk78) - dividere per 38,88
variabile Cnt: integer range 0-63;
SubCnt variabile: integer range 0-32;
iniziare
se (NMR = '0 ') then
CLK2 <= '0 ';
Cnt: = 0;
SubCnt: = 0;
elsif rising_edge (Clk78) allora
if (Cnt> 18) poi
CLK2 <= '1 ';
altro
CLK2 <= '0 ';
end if;
if (Cnt> 37) o ((Cnt> 36) e ((SubCnt = 0) o (SubCnt = 8) o
(SubCnt = 17))) poi
Cnt: = 0;
if (SubCnt> 23) poi
SubCnt: = 0;
altro
SubCnt: SubCnt = 1;
end if;
altro
Cnt: = cnt 1;
end if;
end if;
end process;--************************************************ ***si può spiegare in che modo i fattori di divisione orologio per "dividere per 38,88"
sono raggiunti?
si può fornire qualsiasi algoritmo / formule di riferimento?
Saluti,
Sundar
è implementato nel codice seguente.
--************************************************ ******
ClkDiv2: processo (NMR, Clk78) - dividere per 38,88
variabile Cnt: integer range 0-63;
SubCnt variabile: integer range 0-32;
iniziare
se (NMR = '0 ') then
CLK2 <= '0 ';
Cnt: = 0;
SubCnt: = 0;
elsif rising_edge (Clk78) allora
if (Cnt> 18) poi
CLK2 <= '1 ';
altro
CLK2 <= '0 ';
end if;
if (Cnt> 37) o ((Cnt> 36) e ((SubCnt = 0) o (SubCnt = 8) o
(SubCnt = 17))) poi
Cnt: = 0;
if (SubCnt> 23) poi
SubCnt: = 0;
altro
SubCnt: SubCnt = 1;
end if;
altro
Cnt: = cnt 1;
end if;
end if;
end process;--************************************************ ***si può spiegare in che modo i fattori di divisione orologio per "dividere per 38,88"
sono raggiunti?
si può fornire qualsiasi algoritmo / formule di riferimento?
Saluti,
Sundar