Здравствуйте, уважаемые.

Сравнительно бесплатно удалось заполучить несколько микросхем, грешно с которыми не согрешить sm.gif да и мечту давнюю реализовать. ну или, во всяком случае, попробовать.
Итак, задача - реализовать нечто подобное SDR трансивера, наподобие hiqsdr.com (не реклама), но без изернета и еще много чего.

За сим имеем два "канала" - АЦП и ЦАП. В зависимости от режима внутренности должны тактироваться или тактом АЦП или ЦАП (порядка 150 Мгц).
У ребят выше для разводки такта используется внутренняя PLL и выходы ее с0 и с1.
От этого быстрого такта работает не так уж и много блоков (порядка 2000 le)? а потом она сразу делится.

За сим вопрос - есть ли необходимость задействовать PLL или можно обойтись как нибудь так -

Код
wire is_this_receiver = ...
wire clk_p = is_this_receiver ? clk_adc : clk_dac;

Что при этом надо сказать timequest'у чтобы оно поняло что clk_p это клок?

При этом clk_dac есть всегда, а clk_adc есть только когда is_this_receiver не ноль.


Понятно дело, что clk_adc и clk_dac в некотором смысле синхронны, но их фаза не известна.
Еще вопрос - можно ли сделать как-нибудь так:

Код
module adc_pipeline (input adc_clk, input [N:0] adc_in, output [N:0] adc_d);
always @(negedge adc_clk) adc_d <= adc_in;
endmodule

а потом читать adc_d по клоку clk_dac? Это чтобы всегда был один, непереключаемый быстрый клок.



И вообще МАКС 10 годится для такого (уж больно ножки у нее, qfp, хорошо разводятся)?

Заранее благодарствую.
простите чайника.
И вообще, за пиво/коньяк/виски (можно одновременноsm.gif) буду рад если кто в питере покажет пальцем как бороться с кактусом и таймквестом.