въпрос за DDS логика - обратен инженеринг

F

fpga_asic_designer

Guest
Аз гледам на силиций се оказа дизайн на DDS;
1.Основно използване accumulater фаза, за да генерира DTO ценности, carry_r / carry_f флаг,
2.след това се преминава през модул (една аз съм крекинг главата ми се, но все още нямат представа как работи), за да получат показалеца адрес за въстание и падане.
3.Тогава адресите, заедно с валиден адрес ще бъде предадено на един ром като логика, избор на подходящи кантове от аналогово за начало на въстание и началото на падане indicater
4.постави началото на въстание и попадат в една indicaters SR капаче, за да genertate правилно DDS freqency.

Всички те са просто за отворен цикъл.

За # 2 модула, разбрах, всяка линия и пише моите собствени кодове вън.Но аз все още не може да види голямата картина какви са тези повтарящи се изчисления са за.Може ли някой да ми помогнеш?Аз съм поставяне част от моите кодове тук.

Забележка: f_o_clk = f_i_clk * СФ / (2 ** 16)
Забележка: dto_width = 16 в този случай.

/ / 1-во изваждане
тел [dto_width-4: 0] sum1 = DTO_div4 [dto_width-4: 0] - SF_div8 [dto_width-4: 0];
тел sum1_sign = DTO_div4 [dto_width-3] ^ (DTO_div4 [dto_width-4: 0]> = SF_div8 [dto_width-4: 0]);
обл [dto_width-4: 0] sum1_load;
Винаги @ (posedge IRST или iclk posedge)
започвам
IF (IRST) sum1_load <= 'h0;
иначе, ако (sum1_sign) sum1_load <= sum1;
иначе sum1_load <= DTO_div4 [dto_width-4: 0];
приключвам

/ / 2-ра изваждане
тел [dto_width-5: 0] sum2 = sum1_load [dto_width-5: 0] - SF_div16 [dto_width-5: 0];
тел sum2_sign = sum1_load [dto_width-4] ^ (sum1_load [dto_width-5: 0]> = SF_div16 [dto_width-5: 0]);
обл [dto_width-5: 0] sum2_load;
Винаги @ (posedge IRST или iclk posedge)
започвам
IF (IRST) sum2_load <= 'h0;
иначе, ако (sum2_sign) sum2_load <= sum2;
иначе sum2_load <= sum1_load [dto_width-5: 0];
приключвамБлагодаря много!

 
parameters, just a frequency register and phase accumulator, optionally phase modulation.

Основни DDS дизайн не включва, че повишаването на и попадащи
параметри, само честота регистър и акумулатор фаза, по желание фазова модулация.Това е ясно какво говориш.

 
Благодаря FVM, сега разбрах функционалността на изваждане.По същество това е част от фаза accumulater.Това е сравняване на натрупаните DTO-N * СФ ценности с SF/32, SF2 * / 32 .... SF * 31/32, за да реши кои от 32-ръбове от аналогово към избирам от ....

 
Нормалната DDS имат ниска резолюция честота.Т.е. ако референтната часовник е 200MHZ, честотата резолюция е нормално също 200MHZ.

Това не е много хубаво, тъй като не може да има часовник на честота 160MHz, само 200MHZ, 100MHZ, 66MHz (5ns, 10ns, 15ns и т.н.) на разположение.

За постигане на по-малки резолюция честота.Async дизайн е необходимо използването SR ключалки за squal вълни случай.Някои аналогови устройства може да се използва за генериране на reference_clk * # честота _resolution.А дигитален дизайн ще бъде необходимо да се разделят в incremental_period # _resolution честота и сравнение с DTO да решат кой край трябва да се използва като повишават или понижават край.

 

Welcome to EDABoard.com

Sponsor

Back
Top