Цитата(TIT0 @ Nov 4 2009, 12:53)

собственно вопрос не в том как, а в том на каком плисе это проще и лучше сделать.
Так это элементарно:
1) нужен 1 триггер на синхронизатор входного 1 герца с 10 МГц-ами.
2) нужно два триггера на ловилку фронта входного 1 Гц.
3) нужно делить на 10E6, это вроде как 24 триггера.
Пункты 1..3 требуют 1+2+(24) = 27 ячеек ПЛИС.
Так как счетчик не по модулю 2^N, то будет еще компаратор на сброс, накинем еще пару ячеек.
Итого 29 ячеек. Это грубая прикидка. Точно влезет в EPM3064, возможно влезет в EPM3032.
теперь пишем RTL:
Код
module tsts (clk, in, out);
input clk, in;
output out;
reg [2:0] sync;
always @(posedge clk)
sync <= {sync[1:0], in};
wire clr;
assign clr = (sync[2:1] == 2'b10);
reg [23:0] cnt;
always @(posedge clk)
if (clr || (cnt == 24'd9999999))
cnt <= 24'h0;
else
cnt <= cnt + 1'b1;
assign out = cnt[23];
endmodule
Синтезируем - получаем 30 ячеек и EPM3032.
Теперь если нужен на выходе меандр, перецентрируем счетчик, не 0...9999999, а 3388608...13388607.
Код
module tsts (clk, in, out);
input clk, in;
output out;
reg [2:0] sync;
always @(posedge clk)
sync <= {sync[1:0], in};
wire clr;
assign clr = (sync[2:1] == 2'b10);
reg [23:0] cnt;
always @(posedge clk)
if (clr || (cnt == 24'd13388607))
cnt <= 24'd3388608;
else
cnt <= cnt + 1'b1;
assign out = cnt[23];
endmodule
Синтезируем - 32 ячейки - опять EPM3032, но совсем под завязку, на 100%.
Проверяем тайминг - на EPM3032ATC44-10 получаем Fmax > 60 MHz. Все ОК.
А, забыл, цель-то потребление. Тогда однозначно выбираем ПЛИС серии ispMACH 4000ZE , тоже наверное 32 ячейки (только надо проверить, так как тут притык, я не буду синтезировать). Докучи она 5-вольт-толерантна по входам. Вот и все, задача решена. В результате мой выбор - LC4032ZE-7TN48C, цена примерно $1.6 за сотню при покупке через ABN Universal. Только, повторю, так как тут впритык, надо проверить синтезом под это семейство. А то может, если меандр нужен, переделать конструкцию в последовательные делитель на 5000000 и на 2 вместо центрированного счетчика с загрузкой, это вернет (должно вернуть) на 30 ячеек.
ЗЫ. Касаемо освоения - lattice/altera/xilinx будут примерно одинаковы. Главное освоить verilog, для чего достаточно какого нибудь симулятора. А вот с Вашим любимым атымелом можете и повозиться, они сдирательством занимались, и софт там... И потребление... Ну в общем не буду продолжать