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];
приключвамБлагодаря много!
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];
приключвамБлагодаря много!