Цитата(shamrel @ Jan 14 2016, 08:28)

Приветствую!
В системе есть тактовая частота Fclk = 200МГц. От этой частоты нужно тактировать АЦП, ЦАП и цепочки фильтров. Причем, частота выборки устанавливается из вне (передается параметр) и может быть любой из Fclk/N , где N -- целое число 16-битное число (включая 1).
Как можно это сделать? Делитель на счетчике с загрузкой? Выход не будет синхронным с основной частотой, да и минимальный коэффициент деления 2, а нужно 1 (нет деления). Использовать перестраиваемый PLL? Сильно громоздко получается (в Altera), или может я не до конца разобрался как это сделать. Или смириться с асинхронностью схемы?
Я делал это достаточно просто. АЦП и ЦАП тактируются максимальной частотой, а содержимое регистров АЦП и ЦАП обнавляются с различной (программируемой) частотой. Т.о. такты я не трогаю - это глобальные цепи с постоянным с фиксированной частотой.
Вот частота обновления входного (для АЦП) регистра и выходного (для ЦАП) регистра и задают период дискретизации.
Нарисую времянки
__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__/'''\__ Fclk = 200МГц
_/''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' CLOCK ENABLE для регистров АЦП и ЦАП для N = 1;
__/''''''''\____/''''''''\____/''''''''\____/''''''''\____/''''''''\____/''''''''\____/''''''''\____/ CLOCK ENABLE для регистров АЦП и ЦАП для N = 2;
__/''''''''\_________/''''''''\________/''''''''\________/''''''''\_________/''''''''\____ CLOCK ENABLE для регистров АЦП и ЦАП для N = 4;
ПРАВДА ЭТО ВАМ НАВЕРНОЕ НЕ ПОДОЙДЕТ=)))) ТУТ ДЕЛИТЕЛЬ КРАТНЫЙ 2
Цитата(Bad0512 @ Jan 14 2016, 08:39)

Ставьте внешню целочисленную PLL и управляйте её настройками.
ИМХО, это единственный надежный вариант.
В ПЛИС системная частота должна быть постоянная.