Achieve timing closure: DSP48E1 pipelines, 4-stage NCO, 28-bit CIC, ASYNC_REG

Phase 0+ timing optimization (attempts #13-22 + implementation):

NCO (nco_400m_enhanced.v):
- 4-stage pipeline: DSP48E1 accumulate -> LUT read -> negate -> quadrant MUX
- DSP48E1 phase accumulator in P=P+C mode (eliminates 8-stage CARRY4 chain)
- Registered phase_inc_dithered to break cascaded 32-bit add path

DDC (ddc_400m.v):
- Direct DSP48E1 instantiation for I/Q mixers (AREG=1, BREG=1, MREG=1, PREG=1)
- CEP=1, RSTP=!reset_n for proper pipeline control
- 3-stage dsp_valid_pipe for PREG=1 latency
- Behavioral sim model under ifdef SIMULATION for Icarus compatibility

CIC (cic_decimator_4x_enhanced.v):
- 28-bit accumulators (was 36) per CIC width formula: 18 + 5*log2(4) = 28
- Removed integrator/comb saturation (CIC uses wrapping arithmetic by design)
- Pipelined output saturation comparison

CDC/ASYNC_REG:
- ASYNC_REG attribute on all CDC synchronizer registers (cdc_modules.v,
  radar_system_top.v, usb_data_interface.v)
- Sync reset in generate blocks (cdc_modules.v)

Results: Vivado post-implementation WNS=+1.196ns, 0 failing endpoints,
850 LUTs (1.34%), 466 FFs (0.37%), 2 DSP48E1 (0.83%) on xc7a100t.
All testbenches pass: 241/244 (3 known stub failures).
This commit is contained in:
Jason
2026-03-16 01:02:07 +02:00
parent 1e51b739a7
commit c983a3c705
15 changed files with 5883 additions and 5466 deletions
+19 -20
View File
@@ -2,6 +2,9 @@
// ============================================================================ // ============================================================================
// CDC FOR MULTI-BIT DATA (ADVANCED) // CDC FOR MULTI-BIT DATA (ADVANCED)
// Uses Gray-code encoding with synchronous reset on sync chain to avoid
// latch inference. ASYNC_REG attributes ensure Vivado places synchronizer
// FFs in the same slice for optimal MTBF.
// ============================================================================ // ============================================================================
module cdc_adc_to_processing #( module cdc_adc_to_processing #(
parameter WIDTH = 8, parameter WIDTH = 8,
@@ -38,15 +41,16 @@ module cdc_adc_to_processing #(
// Source domain registers // Source domain registers
reg [WIDTH-1:0] src_data_reg; reg [WIDTH-1:0] src_data_reg;
reg [1:0] src_toggle = 2'b00; reg [1:0] src_toggle = 2'b00;
reg src_toggle_sync = 0;
// Destination domain registers // Destination domain synchronizer registers
reg [WIDTH-1:0] dst_data_gray [0:STAGES-1]; // ASYNC_REG on memory arrays applies to all elements
reg [1:0] dst_toggle_sync [0:STAGES-1]; (* ASYNC_REG = "TRUE" *) reg [WIDTH-1:0] dst_data_gray [0:STAGES-1];
(* ASYNC_REG = "TRUE" *) reg [1:0] dst_toggle_sync [0:STAGES-1];
reg [WIDTH-1:0] dst_data_reg; reg [WIDTH-1:0] dst_data_reg;
reg dst_valid_reg = 0; reg dst_valid_reg = 0;
reg [1:0] prev_dst_toggle = 2'b00; reg [1:0] prev_dst_toggle = 2'b00;
// Source domain: capture data and toggle
always @(posedge src_clk or negedge reset_n) begin always @(posedge src_clk or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
src_data_reg <= 0; src_data_reg <= 0;
@@ -57,17 +61,16 @@ module cdc_adc_to_processing #(
end end
end end
// CDC synchronization chain for data // CDC synchronization chain for data SYNCHRONOUS RESET
// Using synchronous reset avoids latch inference in Vivado.
// For CDC synchronizers, synchronous reset is preferred because
// the reset value is sampled safely within the clock domain.
genvar i; genvar i;
generate generate
for (i = 0; i < STAGES; i = i + 1) begin : data_sync_chain for (i = 0; i < STAGES; i = i + 1) begin : data_sync_chain
always @(posedge dst_clk or negedge reset_n) begin always @(posedge dst_clk) begin
if (!reset_n) begin if (!reset_n) begin
if (i == 0) begin dst_data_gray[i] <= 0;
dst_data_gray[i] <= 0;
end else begin
dst_data_gray[i] <= dst_data_gray[i-1];
end
end else begin end else begin
if (i == 0) begin if (i == 0) begin
// Convert to gray code at domain crossing // Convert to gray code at domain crossing
@@ -80,13 +83,9 @@ module cdc_adc_to_processing #(
end end
for (i = 0; i < STAGES; i = i + 1) begin : toggle_sync_chain for (i = 0; i < STAGES; i = i + 1) begin : toggle_sync_chain
always @(posedge dst_clk or negedge reset_n) begin always @(posedge dst_clk) begin
if (!reset_n) begin if (!reset_n) begin
if (i == 0) begin dst_toggle_sync[i] <= 2'b00;
dst_toggle_sync[i] <= 2'b00;
end else begin
dst_toggle_sync[i] <= dst_toggle_sync[i-1];
end
end else begin end else begin
if (i == 0) begin if (i == 0) begin
dst_toggle_sync[i] <= src_toggle; dst_toggle_sync[i] <= src_toggle;
@@ -136,7 +135,7 @@ module cdc_single_bit #(
output wire dst_signal output wire dst_signal
); );
reg [STAGES-1:0] sync_chain; (* ASYNC_REG = "TRUE" *) reg [STAGES-1:0] sync_chain;
always @(posedge dst_clk or negedge reset_n) begin always @(posedge dst_clk or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
@@ -171,13 +170,13 @@ module cdc_handshake #(
reg [WIDTH-1:0] src_data_reg; reg [WIDTH-1:0] src_data_reg;
reg src_busy = 0; reg src_busy = 0;
reg src_ack_sync = 0; reg src_ack_sync = 0;
reg [1:0] src_ack_sync_chain = 2'b00; (* ASYNC_REG = "TRUE" *) reg [1:0] src_ack_sync_chain = 2'b00;
// Destination domain // Destination domain
reg [WIDTH-1:0] dst_data_reg; reg [WIDTH-1:0] dst_data_reg;
reg dst_valid_reg = 0; reg dst_valid_reg = 0;
reg dst_req_sync = 0; reg dst_req_sync = 0;
reg [1:0] dst_req_sync_chain = 2'b00; (* ASYNC_REG = "TRUE" *) reg [1:0] dst_req_sync_chain = 2'b00;
reg dst_ack = 0; reg dst_ack = 0;
// Source clock domain // Source clock domain
+53 -79
View File
@@ -15,17 +15,20 @@ parameter STAGES = 5;
parameter DECIMATION = 4; parameter DECIMATION = 4;
parameter COMB_DELAY = 1; parameter COMB_DELAY = 1;
// Increased bit width for 18-bit input with headroom // Accumulator width: input_width + N*log2(R) = 18 + 5*2 = 28 bits
reg signed [35:0] integrator [0:STAGES-1]; // 36-bit for better dynamic range // (36-bit was over-provisioned; 28 bits is mathematically exact for R=4, N=5)
reg signed [35:0] comb [0:STAGES-1]; localparam ACC_WIDTH = 28;
reg signed [35:0] comb_delay [0:STAGES-1][0:COMB_DELAY-1];
reg signed [ACC_WIDTH-1:0] integrator [0:STAGES-1];
reg signed [ACC_WIDTH-1:0] comb [0:STAGES-1];
reg signed [ACC_WIDTH-1:0] comb_delay [0:STAGES-1][0:COMB_DELAY-1];
// Enhanced control and monitoring // Enhanced control and monitoring
reg [1:0] decimation_counter; reg [1:0] decimation_counter;
reg data_valid_delayed; reg data_valid_delayed;
reg data_valid_comb; reg data_valid_comb;
reg [7:0] output_counter; reg [7:0] output_counter;
reg [35:0] max_integrator_value; reg [ACC_WIDTH-1:0] max_integrator_value;
reg overflow_detected; reg overflow_detected;
reg overflow_latched; // Latched overflow indicator reg overflow_latched; // Latched overflow indicator
@@ -39,10 +42,16 @@ reg comb_saturation_detected;
reg [7:0] comb_saturation_event_count; reg [7:0] comb_saturation_event_count;
// Temporary signals for calculations // Temporary signals for calculations
reg signed [35:0] abs_integrator_value; reg signed [ACC_WIDTH-1:0] abs_integrator_value;
reg signed [35:0] temp_scaled_output; reg signed [ACC_WIDTH-1:0] temp_scaled_output;
reg signed [17:0] temp_output; // Temporary output for proper range checking reg signed [17:0] temp_output; // Temporary output for proper range checking
// Pipeline stage for saturation comparison — breaks CARRY4 chain from timing path
reg sat_pos; // temp_scaled_output > 131071 (registered)
reg sat_neg; // temp_scaled_output < -131072 (registered)
reg signed [17:0] temp_output_pipe; // Registered passthrough value
reg data_out_valid_pipe; // Delayed valid for pipelined output
integer i, j; integer i, j;
// Initialize // Initialize
@@ -70,6 +79,10 @@ initial begin
abs_integrator_value = 0; abs_integrator_value = 0;
temp_scaled_output = 0; temp_scaled_output = 0;
temp_output = 0; temp_output = 0;
sat_pos = 0;
sat_neg = 0;
temp_output_pipe = 0;
data_out_valid_pipe = 0;
comb_overflow_latched = 0; comb_overflow_latched = 0;
comb_saturation_detected = 0; comb_saturation_detected = 0;
comb_saturation_event_count = 0; comb_saturation_event_count = 0;
@@ -106,54 +119,23 @@ always @(posedge clk or negedge reset_n) begin
if (data_valid) begin if (data_valid) begin
sample_count <= sample_count + 1; sample_count <= sample_count + 1;
// First integrator stage with enhanced saturation detection // Integrator stages — standard CIC uses wrapping (modular) arithmetic.
if (integrator[0] + $signed({{18{data_in[17]}}, data_in}) > (2**35 - 1)) begin // Saturation clamping is removed because CIC math relies on wrap-around;
integrator[0] <= (2**35 - 1); // the comb stages difference successive integrator values, canceling wraps.
overflow_detected <= 1'b1; integrator[0] <= integrator[0] + {{(ACC_WIDTH-18){data_in[17]}}, data_in};
overflow_latched <= 1'b1;
saturation_detected <= 1'b1;
saturation_event_count <= saturation_event_count + 1;
`ifdef SIMULATION
$display("CIC_SATURATION: Positive overflow at sample %0d", sample_count);
`endif
end else if (integrator[0] + $signed({{18{data_in[17]}}, data_in}) < -(2**35)) begin
integrator[0] <= -(2**35);
overflow_detected <= 1'b1;
overflow_latched <= 1'b1;
saturation_detected <= 1'b1;
saturation_event_count <= saturation_event_count + 1;
`ifdef SIMULATION
$display("CIC_SATURATION: Negative overflow at sample %0d", sample_count);
`endif
end else begin
integrator[0] <= integrator[0] + $signed({{18{data_in[17]}}, data_in});
overflow_detected <= 1'b0; // Only clear immediate detection, not latched
end
// Calculate absolute value for monitoring // Calculate absolute value for monitoring
abs_integrator_value <= (integrator[0][35]) ? -integrator[0] : integrator[0]; abs_integrator_value <= (integrator[0][ACC_WIDTH-1]) ? -integrator[0] : integrator[0];
// Track maximum integrator value for gain monitoring (absolute value) // Track maximum integrator value for gain monitoring (absolute value)
if (abs_integrator_value > max_integrator_value) begin if (abs_integrator_value > max_integrator_value) begin
max_integrator_value <= abs_integrator_value; max_integrator_value <= abs_integrator_value;
max_value_monitor <= abs_integrator_value[31:24]; max_value_monitor <= abs_integrator_value[ACC_WIDTH-5:ACC_WIDTH-12];
end end
// Remaining integrator stages with saturation protection // Remaining integrator stages — pure accumulation, no saturation
for (i = 1; i < STAGES; i = i + 1) begin for (i = 1; i < STAGES; i = i + 1) begin
if (integrator[i] + integrator[i-1] > (2**35 - 1)) begin integrator[i] <= integrator[i] + integrator[i-1];
integrator[i] <= (2**35 - 1);
overflow_detected <= 1'b1;
overflow_latched <= 1'b1;
saturation_detected <= 1'b1;
end else if (integrator[i] + integrator[i-1] < -(2**35)) begin
integrator[i] <= -(2**35);
overflow_detected <= 1'b1;
overflow_latched <= 1'b1;
saturation_detected <= 1'b1;
end else begin
integrator[i] <= integrator[i] + integrator[i-1];
end
end end
// Enhanced decimation control // Enhanced decimation control
@@ -194,6 +176,10 @@ always @(posedge clk or negedge reset_n) begin
data_out_valid <= 0; data_out_valid <= 0;
temp_scaled_output <= 0; temp_scaled_output <= 0;
temp_output <= 0; temp_output <= 0;
sat_pos <= 0;
sat_neg <= 0;
temp_output_pipe <= 0;
data_out_valid_pipe <= 0;
comb_overflow_latched <= 0; comb_overflow_latched <= 0;
comb_saturation_detected <= 0; comb_saturation_detected <= 0;
comb_saturation_event_count <= 0; comb_saturation_event_count <= 0;
@@ -207,21 +193,11 @@ always @(posedge clk or negedge reset_n) begin
end end
if (data_valid_comb) begin if (data_valid_comb) begin
// Enhanced comb processing with saturation check // Comb processing raw subtraction only (no saturation check needed;
// comb is a differencing stage, cannot overflow if integrators are bounded)
for (i = 0; i < STAGES; i = i + 1) begin for (i = 0; i < STAGES; i = i + 1) begin
if (i == 0) begin if (i == 0) begin
// Check for comb stage saturation comb[0] <= integrator[STAGES-1] - comb_delay[0][COMB_DELAY-1];
if (integrator[STAGES-1] - comb_delay[0][COMB_DELAY-1] > (2**35 - 1)) begin
comb[0] <= (2**35 - 1);
comb_overflow_latched <= 1'b1;
comb_saturation_detected <= 1'b1;
end else if (integrator[STAGES-1] - comb_delay[0][COMB_DELAY-1] < -(2**35)) begin
comb[0] <= -(2**35);
comb_overflow_latched <= 1'b1;
comb_saturation_detected <= 1'b1;
end else begin
comb[0] <= integrator[STAGES-1] - comb_delay[0][COMB_DELAY-1];
end
// Update delay line for first stage // Update delay line for first stage
for (j = COMB_DELAY-1; j > 0; j = j - 1) begin for (j = COMB_DELAY-1; j > 0; j = j - 1) begin
@@ -229,18 +205,7 @@ always @(posedge clk or negedge reset_n) begin
end end
comb_delay[0][0] <= integrator[STAGES-1]; comb_delay[0][0] <= integrator[STAGES-1];
end else begin end else begin
// Check for comb stage saturation comb[i] <= comb[i-1] - comb_delay[i][COMB_DELAY-1];
if (comb[i-1] - comb_delay[i][COMB_DELAY-1] > (2**35 - 1)) begin
comb[i] <= (2**35 - 1);
comb_overflow_latched <= 1'b1;
comb_saturation_detected <= 1'b1;
end else if (comb[i-1] - comb_delay[i][COMB_DELAY-1] < -(2**35)) begin
comb[i] <= -(2**35);
comb_overflow_latched <= 1'b1;
comb_saturation_detected <= 1'b1;
end else begin
comb[i] <= comb[i-1] - comb_delay[i][COMB_DELAY-1];
end
// Update delay line // Update delay line
for (j = COMB_DELAY-1; j > 0; j = j - 1) begin for (j = COMB_DELAY-1; j > 0; j = j - 1) begin
@@ -257,27 +222,36 @@ always @(posedge clk or negedge reset_n) begin
// FIXED: Extract 18-bit output properly // FIXED: Extract 18-bit output properly
temp_output <= temp_scaled_output[17:0]; temp_output <= temp_scaled_output[17:0];
// FIXED: Proper saturation detection for 18-bit signed range // Pipeline Stage 2: Register saturation comparison flags
if (temp_scaled_output > 131071) begin // 2^17 - 1 // This breaks the CARRY4 chain out of the data_out critical path
sat_pos <= (temp_scaled_output > 131071);
sat_neg <= (temp_scaled_output < -131072);
temp_output_pipe <= temp_scaled_output[17:0];
data_out_valid_pipe <= 1;
end else begin
data_out_valid_pipe <= 0;
end
// Pipeline Stage 3: MUX from registered comparison flags
if (data_out_valid_pipe) begin
if (sat_pos) begin
data_out <= 131071; data_out <= 131071;
comb_overflow_latched <= 1'b1; comb_overflow_latched <= 1'b1;
comb_saturation_detected <= 1'b1; comb_saturation_detected <= 1'b1;
comb_saturation_event_count <= comb_saturation_event_count + 1; comb_saturation_event_count <= comb_saturation_event_count + 1;
`ifdef SIMULATION `ifdef SIMULATION
$display("CIC_OUTPUT_SAT: TRUE Positive saturation, raw=%h, scaled=%h, temp_out=%d, final_out=%d", $display("CIC_OUTPUT_SAT: TRUE Positive saturation, final_out=%d", 131071);
comb[STAGES-1], temp_scaled_output, temp_output, 131071);
`endif `endif
end else if (temp_scaled_output < -131072) begin // -2^17 end else if (sat_neg) begin
data_out <= -131072; data_out <= -131072;
comb_overflow_latched <= 1'b1; comb_overflow_latched <= 1'b1;
comb_saturation_detected <= 1'b1; comb_saturation_detected <= 1'b1;
comb_saturation_event_count <= comb_saturation_event_count + 1; comb_saturation_event_count <= comb_saturation_event_count + 1;
`ifdef SIMULATION `ifdef SIMULATION
$display("CIC_OUTPUT_SAT: TRUE Negative saturation, raw=%h, scaled=%h, temp_out=%d, final_out=%d", $display("CIC_OUTPUT_SAT: TRUE Negative saturation, final_out=%d", -131072);
comb[STAGES-1], temp_scaled_output, temp_output, -131072);
`endif `endif
end else begin end else begin
data_out <= temp_output; data_out <= temp_output_pipe;
comb_overflow_latched <= 1'b0; comb_overflow_latched <= 1'b0;
comb_saturation_detected <= 1'b0; comb_saturation_detected <= 1'b0;
end end
+295 -38
View File
@@ -54,9 +54,13 @@ reg [2:0] saturation_count;
reg overflow_detected; reg overflow_detected;
reg [7:0] error_counter; reg [7:0] error_counter;
// CDC synchronization for control signals // CDC synchronization for control signals (2-stage synchronizers)
reg mixers_enable_sync; (* ASYNC_REG = "TRUE" *) reg [1:0] mixers_enable_sync_chain;
reg bypass_mode_sync; (* ASYNC_REG = "TRUE" *) reg [1:0] bypass_mode_sync_chain;
(* ASYNC_REG = "TRUE" *) reg [1:0] force_saturation_sync_chain;
wire mixers_enable_sync;
wire bypass_mode_sync;
wire force_saturation_sync;
// Debug monitoring signals // Debug monitoring signals
reg [31:0] sample_counter; reg [31:0] sample_counter;
@@ -66,14 +70,15 @@ wire signed [17:0] debug_mixed_q_trunc;
// Real-time status monitoring // Real-time status monitoring
reg [7:0] signal_power_i, signal_power_q; reg [7:0] signal_power_i, signal_power_q;
// Enhanced saturation injection for testing
reg force_saturation_sync;
// Internal mixing signals // Internal mixing signals
reg signed [MIXER_WIDTH-1:0] adc_signed; // DSP48E1 with AREG=1, BREG=1, MREG=1, PREG=1 handles all internal pipelining
// Latency: 3 cycles (1 for AREG/BREG, 1 for MREG, 1 for PREG)
wire signed [MIXER_WIDTH-1:0] adc_signed_w;
reg signed [MIXER_WIDTH + NCO_WIDTH -1:0] mixed_i, mixed_q; reg signed [MIXER_WIDTH + NCO_WIDTH -1:0] mixed_i, mixed_q;
reg mixed_valid; reg mixed_valid;
reg mixer_overflow_i, mixer_overflow_q; reg mixer_overflow_i, mixer_overflow_q;
// Pipeline valid tracking: 3-stage shift register to match DSP48E1 AREG+MREG+PREG latency
reg [2:0] dsp_valid_pipe;
// Output stage registers // Output stage registers
reg signed [17:0] baseband_i_reg, baseband_q_reg; reg signed [17:0] baseband_i_reg, baseband_q_reg;
@@ -83,7 +88,7 @@ reg baseband_valid_reg;
// Phase Dithering Signals // Phase Dithering Signals
// ============================================================================ // ============================================================================
wire [7:0] phase_dither_bits; wire [7:0] phase_dither_bits;
wire [31:0] phase_inc_dithered; reg [31:0] phase_inc_dithered;
@@ -97,17 +102,21 @@ assign debug_mixed_i_trunc = mixed_i[25:8];
assign debug_mixed_q_trunc = mixed_q[25:8]; assign debug_mixed_q_trunc = mixed_q[25:8];
// ============================================================================ // ============================================================================
// Clock Domain Crossing for Control Signals // Clock Domain Crossing for Control Signals (2-stage synchronizers)
// ============================================================================ // ============================================================================
assign mixers_enable_sync = mixers_enable_sync_chain[1];
assign bypass_mode_sync = bypass_mode_sync_chain[1];
assign force_saturation_sync = force_saturation_sync_chain[1];
always @(posedge clk_400m or negedge reset_n) begin always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
mixers_enable_sync <= 1'b0; mixers_enable_sync_chain <= 2'b00;
bypass_mode_sync <= 1'b0; bypass_mode_sync_chain <= 2'b00;
force_saturation_sync <= 1'b0; force_saturation_sync_chain <= 2'b00;
end else begin end else begin
mixers_enable_sync <= mixers_enable; mixers_enable_sync_chain <= {mixers_enable_sync_chain[0], mixers_enable};
bypass_mode_sync <= bypass_mode; bypass_mode_sync_chain <= {bypass_mode_sync_chain[0], bypass_mode};
force_saturation_sync <= force_saturation; force_saturation_sync_chain <= {force_saturation_sync_chain[0], force_saturation};
end end
end end
@@ -117,7 +126,6 @@ end
always @(posedge clk_400m or negedge reset_n) begin always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n || reset_monitors) begin if (!reset_n || reset_monitors) begin
sample_counter <= 0; sample_counter <= 0;
saturation_count <= 0;
error_counter <= 0; error_counter <= 0;
end else if (adc_data_valid_i && adc_data_valid_q ) begin end else if (adc_data_valid_i && adc_data_valid_q ) begin
sample_counter <= sample_counter + 1; sample_counter <= sample_counter + 1;
@@ -143,8 +151,13 @@ lfsr_dither_enhanced #(
// Calculate phase increment for 120MHz IF at 400MHz sampling // Calculate phase increment for 120MHz IF at 400MHz sampling
localparam PHASE_INC_120MHZ = 32'h4CCCCCCD; localparam PHASE_INC_120MHZ = 32'h4CCCCCCD;
// Apply dithering to reduce spurious tones // Apply dithering to reduce spurious tones (registered for 400 MHz timing)
assign phase_inc_dithered = PHASE_INC_120MHZ + {24'b0, phase_dither_bits}; always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n)
phase_inc_dithered <= PHASE_INC_120MHZ;
else
phase_inc_dithered <= PHASE_INC_120MHZ + {24'b0, phase_dither_bits};
end
// ============================================================================ // ============================================================================
// Enhanced NCO with Diagnostics // Enhanced NCO with Diagnostics
@@ -161,11 +174,261 @@ nco_400m_enhanced nco_core (
); );
// ============================================================================ // ============================================================================
// Enhanced Mixing Stage with AGC // Enhanced Mixing Stage DSP48E1 direct instantiation for 400 MHz timing
//
// Architecture:
// ADC data sign-extend to 18b DSP48E1 A-port (AREG=1 pipelines it)
// NCO cos/sin sign-extend to 18b DSP48E1 B-port (BREG=1 pipelines it)
// Multiply result captured by MREG=1, then output registered by PREG=1
// force_saturation override applied AFTER DSP48E1 output (not on input path)
//
// Latency: 3 clock cycles (AREG/BREG + MREG + PREG)
// PREG=1 absorbs DSP48E1 CLKP delay internally, preventing fabric timing violations
// In simulation (Icarus), uses behavioral equivalent since DSP48E1 is Xilinx-only
// ============================================================================
// Combinational ADC sign conversion (no register DSP48E1 AREG handles it)
assign adc_signed_w = {1'b0, adc_data, {(MIXER_WIDTH-ADC_WIDTH-1){1'b0}}} -
{1'b0, {ADC_WIDTH{1'b1}}, {(MIXER_WIDTH-ADC_WIDTH-1){1'b0}}} / 2;
// Valid pipeline: 3-stage shift register matching DSP48E1 AREG+MREG+PREG latency
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
dsp_valid_pipe <= 3'b000;
end else begin
dsp_valid_pipe <= {dsp_valid_pipe[1:0], (nco_ready && adc_data_valid_i && adc_data_valid_q)};
end
end
`ifdef SIMULATION
// ---- Behavioral model for Icarus Verilog simulation ----
// Mimics DSP48E1 with AREG=1, BREG=1, MREG=1, PREG=1 (3-cycle latency)
reg signed [MIXER_WIDTH-1:0] adc_signed_reg; // Models AREG
reg signed [15:0] cos_pipe_reg, sin_pipe_reg; // Models BREG
reg signed [MIXER_WIDTH+NCO_WIDTH-1:0] mult_i_internal, mult_q_internal; // Models MREG
reg signed [MIXER_WIDTH+NCO_WIDTH-1:0] mult_i_reg, mult_q_reg; // Models PREG
// Stage 1: AREG/BREG equivalent
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
adc_signed_reg <= 0;
cos_pipe_reg <= 0;
sin_pipe_reg <= 0;
end else begin
adc_signed_reg <= adc_signed_w;
cos_pipe_reg <= cos_out;
sin_pipe_reg <= sin_out;
end
end
// Stage 2: MREG equivalent
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
mult_i_internal <= 0;
mult_q_internal <= 0;
end else begin
mult_i_internal <= $signed(adc_signed_reg) * $signed(cos_pipe_reg);
mult_q_internal <= $signed(adc_signed_reg) * $signed(sin_pipe_reg);
end
end
// Stage 3: PREG equivalent
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
mult_i_reg <= 0;
mult_q_reg <= 0;
end else begin
mult_i_reg <= mult_i_internal;
mult_q_reg <= mult_q_internal;
end
end
`else
// ---- Direct DSP48E1 instantiation for Vivado synthesis ----
// This guarantees AREG/BREG/MREG are used, achieving timing closure at 400 MHz
wire [47:0] dsp_p_i, dsp_p_q;
// DSP48E1 for I-channel mixer (adc_signed * cos_out)
DSP48E1 #(
// Feature control attributes
.A_INPUT("DIRECT"),
.B_INPUT("DIRECT"),
.USE_DPORT("FALSE"),
.USE_MULT("MULTIPLY"),
.USE_SIMD("ONE48"),
// Pipeline register attributes all enabled for max timing
.AREG(1),
.BREG(1),
.MREG(1),
.PREG(1), // P register enabled absorbs CLKP delay for timing closure
.ADREG(0),
.ACASCREG(1),
.BCASCREG(1),
.ALUMODEREG(0),
.CARRYINREG(0),
.CARRYINSELREG(0),
.CREG(0),
.DREG(0),
.INMODEREG(0),
.OPMODEREG(0),
// Pattern detector (unused)
.AUTORESET_PATDET("NO_RESET"),
.MASK(48'h3fffffffffff),
.PATTERN(48'h000000000000),
.SEL_MASK("MASK"),
.SEL_PATTERN("PATTERN"),
.USE_PATTERN_DETECT("NO_PATDET")
) dsp_mixer_i (
// Clock and reset
.CLK(clk_400m),
.RSTA(!reset_n),
.RSTB(!reset_n),
.RSTM(!reset_n),
.RSTP(!reset_n),
.RSTALLCARRYIN(1'b0),
.RSTALUMODE(1'b0),
.RSTCTRL(1'b0),
.RSTC(1'b0),
.RSTD(1'b0),
.RSTINMODE(1'b0),
// Clock enables
.CEA1(1'b0), // AREG=1 uses CEA2
.CEA2(1'b1),
.CEB1(1'b0), // BREG=1 uses CEB2
.CEB2(1'b1),
.CEM(1'b1),
.CEP(1'b1), // P register clock enable (PREG=1)
.CEAD(1'b0),
.CEALUMODE(1'b0),
.CECARRYIN(1'b0),
.CECTRL(1'b0),
.CEC(1'b0),
.CED(1'b0),
.CEINMODE(1'b0),
// Data ports
.A({{12{adc_signed_w[MIXER_WIDTH-1]}}, adc_signed_w}), // Sign-extend 18b to 30b
.B({{2{cos_out[15]}}, cos_out}), // Sign-extend 16b to 18b
.C(48'b0),
.D(25'b0),
.CARRYIN(1'b0),
// Control ports
.OPMODE(7'b0000101), // P = M (multiply only, no accumulate)
.ALUMODE(4'b0000), // Z + X + Y + CIN
.INMODE(5'b00000), // A2 * B2 (direct)
.CARRYINSEL(3'b000),
// Output ports
.P(dsp_p_i),
.PATTERNDETECT(),
.PATTERNBDETECT(),
.OVERFLOW(),
.UNDERFLOW(),
.CARRYOUT(),
// Cascade ports (unused)
.ACIN(30'b0),
.BCIN(18'b0),
.CARRYCASCIN(1'b0),
.MULTSIGNIN(1'b0),
.PCIN(48'b0),
.ACOUT(),
.BCOUT(),
.CARRYCASCOUT(),
.MULTSIGNOUT(),
.PCOUT()
);
// DSP48E1 for Q-channel mixer (adc_signed * sin_out)
DSP48E1 #(
.A_INPUT("DIRECT"),
.B_INPUT("DIRECT"),
.USE_DPORT("FALSE"),
.USE_MULT("MULTIPLY"),
.USE_SIMD("ONE48"),
.AREG(1),
.BREG(1),
.MREG(1),
.PREG(1),
.ADREG(0),
.ACASCREG(1),
.BCASCREG(1),
.ALUMODEREG(0),
.CARRYINREG(0),
.CARRYINSELREG(0),
.CREG(0),
.DREG(0),
.INMODEREG(0),
.OPMODEREG(0),
.AUTORESET_PATDET("NO_RESET"),
.MASK(48'h3fffffffffff),
.PATTERN(48'h000000000000),
.SEL_MASK("MASK"),
.SEL_PATTERN("PATTERN"),
.USE_PATTERN_DETECT("NO_PATDET")
) dsp_mixer_q (
.CLK(clk_400m),
.RSTA(!reset_n),
.RSTB(!reset_n),
.RSTM(!reset_n),
.RSTP(!reset_n),
.RSTALLCARRYIN(1'b0),
.RSTALUMODE(1'b0),
.RSTCTRL(1'b0),
.RSTC(1'b0),
.RSTD(1'b0),
.RSTINMODE(1'b0),
.CEA1(1'b0),
.CEA2(1'b1),
.CEB1(1'b0),
.CEB2(1'b1),
.CEM(1'b1),
.CEP(1'b1), // P register clock enable (PREG=1)
.CEAD(1'b0),
.CEALUMODE(1'b0),
.CECARRYIN(1'b0),
.CECTRL(1'b0),
.CEC(1'b0),
.CED(1'b0),
.CEINMODE(1'b0),
.A({{12{adc_signed_w[MIXER_WIDTH-1]}}, adc_signed_w}),
.B({{2{sin_out[15]}}, sin_out}),
.C(48'b0),
.D(25'b0),
.CARRYIN(1'b0),
.OPMODE(7'b0000101),
.ALUMODE(4'b0000),
.INMODE(5'b00000),
.CARRYINSEL(3'b000),
.P(dsp_p_q),
.PATTERNDETECT(),
.PATTERNBDETECT(),
.OVERFLOW(),
.UNDERFLOW(),
.CARRYOUT(),
.ACIN(30'b0),
.BCIN(18'b0),
.CARRYCASCIN(1'b0),
.MULTSIGNIN(1'b0),
.PCIN(48'b0),
.ACOUT(),
.BCOUT(),
.CARRYCASCOUT(),
.MULTSIGNOUT(),
.PCOUT()
);
// Extract the multiply result from DSP48E1 P output
// adc_signed is 18 bits, NCO is 16 bits product is 34 bits (bits [33:0] of P)
wire signed [MIXER_WIDTH+NCO_WIDTH-1:0] mult_i_reg = dsp_p_i[MIXER_WIDTH+NCO_WIDTH-1:0];
wire signed [MIXER_WIDTH+NCO_WIDTH-1:0] mult_q_reg = dsp_p_q[MIXER_WIDTH+NCO_WIDTH-1:0];
`endif
// ============================================================================
// Post-DSP48E1 output stage: force_saturation override + overflow detection
// force_saturation mux is intentionally AFTER the DSP48E1 output to avoid
// polluting the critical input path with extra logic
// ============================================================================ // ============================================================================
always @(posedge clk_400m or negedge reset_n) begin always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
adc_signed <= 0;
mixed_i <= 0; mixed_i <= 0;
mixed_q <= 0; mixed_q <= 0;
mixed_valid <= 0; mixed_valid <= 0;
@@ -173,29 +436,23 @@ always @(posedge clk_400m or negedge reset_n) begin
mixer_overflow_q <= 0; mixer_overflow_q <= 0;
saturation_count <= 0; saturation_count <= 0;
overflow_detected <= 0; overflow_detected <= 0;
end else if (nco_ready && adc_data_valid_i && adc_data_valid_q) begin end else if (dsp_valid_pipe[2]) begin
// Convert ADC data to signed with extended precision // Force saturation for testing (applied after DSP output, not on input path)
adc_signed <= {1'b0, adc_data, {(MIXER_WIDTH-ADC_WIDTH-1){1'b0}}} -
{1'b0, {ADC_WIDTH{1'b1}}, {(MIXER_WIDTH-ADC_WIDTH-1){1'b0}}} / 2;
// Force saturation for testing
if (force_saturation_sync) begin if (force_saturation_sync) begin
mixed_i <= 34'h1FFFFFFFF; // Force positive saturation mixed_i <= 34'h1FFFFFFFF;
mixed_q <= 34'h200000000; // Force negative saturation mixed_q <= 34'h200000000;
mixer_overflow_i <= 1'b1; mixer_overflow_i <= 1'b1;
mixer_overflow_q <= 1'b1; mixer_overflow_q <= 1'b1;
end else begin end else begin
// Normal path: take DSP48E1 multiply result
mixed_i <= mult_i_reg;
mixed_q <= mult_q_reg;
// Normal mixing // Overflow detection on current cycle's multiply result
mixed_i <= $signed(adc_signed) * $signed(cos_out); mixer_overflow_i <= (mult_i_reg > (2**(MIXER_WIDTH+NCO_WIDTH-2)-1)) ||
mixed_q <= $signed(adc_signed) * $signed(sin_out); (mult_i_reg < -(2**(MIXER_WIDTH+NCO_WIDTH-2)));
mixer_overflow_q <= (mult_q_reg > (2**(MIXER_WIDTH+NCO_WIDTH-2)-1)) ||
(mult_q_reg < -(2**(MIXER_WIDTH+NCO_WIDTH-2)));
// Enhanced overflow detection with counting
mixer_overflow_i <= (mixed_i > (2**(MIXER_WIDTH+NCO_WIDTH-2)-1)) ||
(mixed_i < -(2**(MIXER_WIDTH+NCO_WIDTH-2)));
mixer_overflow_q <= (mixed_q > (2**(MIXER_WIDTH+NCO_WIDTH-2)-1)) ||
(mixed_q < -(2**(MIXER_WIDTH+NCO_WIDTH-2)));
end end
mixed_valid <= 1; mixed_valid <= 1;
+245 -50
View File
@@ -11,11 +11,38 @@ module nco_400m_enhanced (
output reg dds_ready output reg dds_ready
); );
// Phase accumulator with registered outputs for better timing // ============================================================================
reg [31:0] phase_accumulator; // 4-stage pipelined NCO for 400 MHz timing closure
reg [31:0] phase_accumulator_reg; //
// Stage 1: Phase accumulator update (DSP48E1 in P=P+C mode) + offset addition
// DSP48E1 does: P_reg <= P_reg + C_port (frequency_tuning_word)
// The P register output IS the phase accumulator no CARRY4 chain.
// phase_with_offset = P_output + {phase_offset, 16'b0} (registered)
// Stage 2: LUT address decode + LUT read register abs values + quadrant
// Stage 3: Compute negations from registered abs values register neg values
// (CARRY4 x4 chain has registered inputs, fits in 2.5ns easily)
// Stage 4: Quadrant sign application sin_out, cos_out (pure MUX, no arith)
//
// Total latency: 4 cycles from phase_valid to sin/cos output
// Max logic levels per stage: Stage 1=DSP48E1(internal), Stage 2=2(LUT3+LUT6),
// Stage 3=4(CARRY4 chain), Stage 4=1(MUX)
// ============================================================================
// Phase accumulator DSP48E1 P output provides the accumulated phase
// In simulation: behavioral reg. In synthesis: DSP48E1 P[31:0].
reg [31:0] phase_with_offset; reg [31:0] phase_with_offset;
reg phase_valid_delayed;
// Stage 2 pipeline registers: LUT output + quadrant
reg [15:0] sin_abs_reg, cos_abs_reg;
reg [1:0] quadrant_reg;
// Stage 3 pipeline registers: pre-computed negations + abs copies + quadrant
reg signed [15:0] sin_neg_reg, cos_neg_reg;
reg [15:0] sin_abs_reg2, cos_abs_reg2; // Pass-through for Stage 4 MUX
reg [1:0] quadrant_reg2; // Pass-through for Stage 4 MUX
// Valid pipeline: tracks 4-stage latency
reg [3:0] valid_pipe;
// Use only the top 8 bits for LUT addressing (256-entry LUT equivalent) // Use only the top 8 bits for LUT addressing (256-entry LUT equivalent)
wire [7:0] lut_address = phase_with_offset[31:24]; wire [7:0] lut_address = phase_with_offset[31:24];
@@ -51,61 +78,229 @@ initial begin
sin_lut[60] = 16'h7F61; sin_lut[61] = 16'h7FA6; sin_lut[62] = 16'h7FD8; sin_lut[63] = 16'h7FF5; sin_lut[60] = 16'h7F61; sin_lut[61] = 16'h7FA6; sin_lut[62] = 16'h7FD8; sin_lut[63] = 16'h7FF5;
end end
// Quadrant determination // Combinational: quadrant determination and LUT index (feeds Stage 2 registers)
wire [1:0] quadrant = lut_address[7:6]; // 00: Q1, 01: Q2, 10: Q3, 11: Q4 wire [1:0] quadrant_w = lut_address[7:6];
wire [5:0] lut_index = (quadrant[1] ? ~lut_address[5:0] : lut_address[5:0]); // Mirror for Q2/Q3 wire [5:0] lut_index = (quadrant_w[0] ^ quadrant_w[1]) ? ~lut_address[5:0] : lut_address[5:0];
// Sine and cosine calculation with quadrant mapping // Combinational LUT read (will be registered in Stage 2)
wire [15:0] sin_abs = sin_lut[lut_index]; wire [15:0] sin_abs_w = sin_lut[lut_index];
wire [15:0] cos_abs = sin_lut[63 - lut_index]; // Cosine is phase-shifted sine wire [15:0] cos_abs_w = sin_lut[63 - lut_index];
// ============================================================================
// Stage 1: Phase accumulator (DSP48E1) + offset addition (fabric register)
//
// The phase accumulator is the critical path bottleneck: a 32-bit addition
// requires 8 CARRY4 stages in fabric (2.826 ns > 2.5 ns budget at 400 MHz).
// Solution: Use DSP48E1 in P = P + C accumulate mode.
// - C-port carries frequency_tuning_word (zero-extended to 48 bits)
// - CREG=1 registers the tuning word inside the DSP
// - PREG=1 registers the accumulator output (P = P + C each cycle)
// - The DSP48E1 48-bit ALU performs the add internally at full speed
// - Only P[31:0] is used (32-bit phase accumulator)
//
// phase_with_offset is computed in fabric: DSP48E1 P output + {phase_offset, 16'b0}
// This is OK because both operands are registered (P is PREG output, phase_offset
// is a stable input), and the result feeds Stage 2 LUT which is also registered.
// ============================================================================
`ifdef SIMULATION
// ---- Behavioral model for Icarus Verilog simulation ----
// Mimics DSP48E1 accumulator: P <= P + C, with CREG=1, PREG=1
reg [31:0] phase_accumulator;
// Pipeline stage for better timing
always @(posedge clk_400m or negedge reset_n) begin always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
phase_accumulator <= 32'h00000000; phase_accumulator <= 32'h00000000;
phase_accumulator_reg <= 32'h00000000;
phase_with_offset <= 32'h00000000; phase_with_offset <= 32'h00000000;
phase_valid_delayed <= 1'b0; end else if (phase_valid) begin
dds_ready <= 1'b0; phase_accumulator <= phase_accumulator + frequency_tuning_word;
phase_with_offset <= phase_accumulator + {phase_offset, 16'b0};
end
end
`else
// ---- DSP48E1 phase accumulator for Vivado synthesis ----
// P = P + C mode: accumulates frequency_tuning_word each clock cycle
// Uses 1 DSP48E1 (total design: 5 of 240 available = 2.08%)
wire [47:0] phase_accum_p; // DSP48E1 P output (48 bits, use [31:0])
DSP48E1 #(
// Feature control
.A_INPUT("DIRECT"),
.B_INPUT("DIRECT"),
.USE_DPORT("FALSE"),
.USE_MULT("NONE"), // No multiplier pure ALU accumulate
.USE_SIMD("ONE48"),
// Pipeline registers
.AREG(0), // A-port unused for accumulate
.BREG(0), // B-port unused for accumulate
.CREG(1), // Register frequency_tuning_word on C-port
.MREG(0), // No multiplier
.PREG(1), // P register IS the phase accumulator
.ADREG(0),
.ACASCREG(0),
.BCASCREG(0),
.ALUMODEREG(0),
.CARRYINREG(0),
.CARRYINSELREG(0),
.DREG(0),
.INMODEREG(0),
.OPMODEREG(0),
// Pattern detector (unused)
.AUTORESET_PATDET("NO_RESET"),
.MASK(48'h3fffffffffff),
.PATTERN(48'h000000000000),
.SEL_MASK("MASK"),
.SEL_PATTERN("PATTERN"),
.USE_PATTERN_DETECT("NO_PATDET")
) dsp_phase_accum (
// Clock and reset
.CLK(clk_400m),
.RSTA(1'b0),
.RSTB(1'b0),
.RSTM(1'b0),
.RSTP(!reset_n), // Reset P register (phase accumulator) on !reset_n
.RSTC(!reset_n), // Reset C register (tuning word) on !reset_n
.RSTALLCARRYIN(1'b0),
.RSTALUMODE(1'b0),
.RSTCTRL(1'b0),
.RSTD(1'b0),
.RSTINMODE(1'b0),
// Clock enables
.CEA1(1'b0),
.CEA2(1'b0),
.CEB1(1'b0),
.CEB2(1'b0),
.CEC(1'b1), // Always register C (tuning word updates)
.CEM(1'b0),
.CEP(phase_valid), // Only accumulate when phase_valid is asserted
.CEAD(1'b0),
.CEALUMODE(1'b0),
.CECARRYIN(1'b0),
.CECTRL(1'b0),
.CED(1'b0),
.CEINMODE(1'b0),
// Data ports
.A(30'b0), // Unused for P = P + C
.B(18'b0), // Unused for P = P + C
.C({16'b0, frequency_tuning_word}), // Zero-extend 32-bit FTW to 48 bits
.D(25'b0),
.CARRYIN(1'b0),
// Control ports
.OPMODE(7'b0010011), // Z=P (010), Y=0 (00), X=C_reg (11) P = P + C
.ALUMODE(4'b0000), // Z + X + Y + CIN (standard add)
.INMODE(5'b00000),
.CARRYINSEL(3'b000),
// Output ports
.P(phase_accum_p),
.PATTERNDETECT(),
.PATTERNBDETECT(),
.OVERFLOW(),
.UNDERFLOW(),
.CARRYOUT(),
// Cascade ports (unused)
.ACIN(30'b0),
.BCIN(18'b0),
.CARRYCASCIN(1'b0),
.MULTSIGNIN(1'b0),
.PCIN(48'b0),
.ACOUT(),
.BCOUT(),
.CARRYCASCOUT(),
.MULTSIGNOUT(),
.PCOUT()
);
// phase_with_offset: add phase_offset to the DSP48E1 accumulator output
// Both operands are registered (phase_accum_p from PREG, phase_offset is stable input)
// This fabric add feeds Stage 2 LUT which is also registered timing is fine
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
phase_with_offset <= 32'h00000000;
end else if (phase_valid) begin
phase_with_offset <= phase_accum_p[31:0] + {phase_offset, 16'b0};
end
end
`endif
// ============================================================================
// Stage 2: LUT read + register absolute values and quadrant
// Only LUT decode here negation is deferred to Stage 3
// ============================================================================
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
sin_abs_reg <= 16'h0000;
cos_abs_reg <= 16'h7FFF;
quadrant_reg <= 2'b00;
end else if (valid_pipe[0]) begin
sin_abs_reg <= sin_abs_w;
cos_abs_reg <= cos_abs_w;
quadrant_reg <= quadrant_w;
end
end
// ============================================================================
// Stage 3: Compute negations from registered abs values
// CARRY4 x4 chain has registered inputs — easily fits in 2.5ns
// Also pass through abs values and quadrant for Stage 4
// ============================================================================
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
sin_neg_reg <= 16'h0000;
cos_neg_reg <= -16'h7FFF;
sin_abs_reg2 <= 16'h0000;
cos_abs_reg2 <= 16'h7FFF;
quadrant_reg2 <= 2'b00;
end else if (valid_pipe[1]) begin
sin_neg_reg <= -sin_abs_reg;
cos_neg_reg <= -cos_abs_reg;
sin_abs_reg2 <= sin_abs_reg;
cos_abs_reg2 <= cos_abs_reg;
quadrant_reg2 <= quadrant_reg;
end
end
// ============================================================================
// Stage 4: Quadrant sign application final sin/cos output
// Uses pre-computed negated values from Stage 3 pure MUX, no arithmetic
// ============================================================================
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
sin_out <= 16'h0000; sin_out <= 16'h0000;
cos_out <= 16'h7FFF; cos_out <= 16'h7FFF;
end else if (valid_pipe[2]) begin
case (quadrant_reg2)
2'b00: begin // Quadrant I: sin+, cos+
sin_out <= sin_abs_reg2;
cos_out <= cos_abs_reg2;
end
2'b01: begin // Quadrant II: sin+, cos-
sin_out <= sin_abs_reg2;
cos_out <= cos_neg_reg;
end
2'b10: begin // Quadrant III: sin-, cos-
sin_out <= sin_neg_reg;
cos_out <= cos_neg_reg;
end
2'b11: begin // Quadrant IV: sin-, cos+
sin_out <= sin_neg_reg;
cos_out <= cos_abs_reg2;
end
endcase
end
end
// ============================================================================
// Valid pipeline and dds_ready (4-stage latency)
// ============================================================================
always @(posedge clk_400m or negedge reset_n) begin
if (!reset_n) begin
valid_pipe <= 4'b0000;
dds_ready <= 1'b0;
end else begin end else begin
phase_valid_delayed <= phase_valid; valid_pipe <= {valid_pipe[2:0], phase_valid};
dds_ready <= valid_pipe[3];
if (phase_valid) begin
// Update phase accumulator with dithered frequency tuning word
phase_accumulator <= phase_accumulator + frequency_tuning_word;
phase_accumulator_reg <= phase_accumulator;
// Apply phase offset
phase_with_offset <= phase_accumulator + {phase_offset, 16'b0};
dds_ready <= 1'b1;
end else begin
dds_ready <= 1'b0;
end
// Generate outputs with one cycle delay for pipelining
if (phase_valid_delayed) begin
// Calculate sine and cosine with proper quadrant signs
case (quadrant)
2'b00: begin // Quadrant I: sin+, cos+
sin_out <= sin_abs;
cos_out <= cos_abs;
end
2'b01: begin // Quadrant II: sin+, cos-
sin_out <= sin_abs;
cos_out <= -cos_abs;
end
2'b10: begin // Quadrant III: sin-, cos-
sin_out <= -sin_abs;
cos_out <= -cos_abs;
end
2'b11: begin // Quadrant IV: sin-, cos+
sin_out <= -sin_abs;
cos_out <= cos_abs;
end
endcase
end
end end
end end
+2 -2
View File
@@ -191,7 +191,7 @@ BUFG bufg_ft601 (
); );
// Reset synchronization (clk_100m domain) // Reset synchronization (clk_100m domain)
reg [1:0] reset_sync; (* ASYNC_REG = "TRUE" *) reg [1:0] reset_sync;
always @(posedge clk_100m_buf or negedge reset_n) begin always @(posedge clk_100m_buf or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
reset_sync <= 2'b00; reset_sync <= 2'b00;
@@ -204,7 +204,7 @@ assign sys_reset_n = reset_sync[1];
// Reset synchronization (clk_120m_dac domain) // Reset synchronization (clk_120m_dac domain)
// Ensures reset deassertion is synchronous to the DAC clock, // Ensures reset deassertion is synchronous to the DAC clock,
// preventing recovery/removal timing violations on 120 MHz FFs. // preventing recovery/removal timing violations on 120 MHz FFs.
reg [1:0] reset_sync_120m; (* ASYNC_REG = "TRUE" *) reg [1:0] reset_sync_120m;
always @(posedge clk_120m_dac_buf or negedge reset_n) begin always @(posedge clk_120m_dac_buf or negedge reset_n) begin
if (!reset_n) begin if (!reset_n) begin
reset_sync_120m <= 2'b00; reset_sync_120m <= 2'b00;
+49 -49
View File
@@ -1,50 +1,50 @@
input_sample,output_sample,data_out,data_out_valid input_sample,output_sample,data_out,data_out_valid
5,0,0,1 6,0,0,1
9,1,0,1 10,1,0,1
13,2,0,1 14,2,0,1
17,3,0,1 18,3,0,1
21,4,0,1 22,4,0,1
25,5,0,1 26,5,0,1
29,6,0,1 30,6,0,1
33,7,0,1 34,7,118,1
37,8,118,1 38,8,651,1
41,9,651,1 42,9,979,1
45,10,979,1 46,10,1000,1
49,11,1000,1 50,11,1000,1
53,12,1000,1 54,12,1000,1
57,13,1000,1 58,13,1000,1
61,14,1000,1 62,14,1000,1
65,15,1000,1 66,15,1000,1
69,16,1000,1 70,16,1000,1
73,17,1000,1 74,17,1000,1
77,18,1000,1 78,18,1000,1
81,19,1000,1 82,19,1000,1
85,20,1000,1 86,20,1000,1
89,21,1000,1 90,21,1000,1
93,22,1000,1 94,22,1000,1
97,23,1000,1 98,23,1000,1
101,24,1000,1 102,24,1000,1
105,25,1000,1 106,25,1000,1
109,26,1000,1 110,26,1000,1
113,27,1000,1 114,27,1000,1
117,28,1000,1 118,28,1000,1
121,29,1000,1 122,29,1000,1
125,30,1000,1 126,30,1000,1
129,31,1000,1 130,31,1000,1
133,32,1000,1 134,32,1000,1
137,33,1000,1 138,33,1000,1
141,34,1000,1 142,34,1000,1
145,35,1000,1 146,35,1000,1
149,36,1000,1 150,36,1000,1
153,37,1000,1 154,37,1000,1
157,38,1000,1 158,38,1000,1
161,39,1000,1 162,39,1000,1
165,40,1000,1 166,40,1000,1
169,41,1000,1 170,41,1000,1
173,42,1000,1 174,42,1000,1
177,43,1000,1 178,43,1000,1
181,44,1000,1 182,44,1000,1
185,45,1000,1 186,45,1000,1
189,46,1000,1 190,46,1000,1
193,47,1000,1 194,47,1000,1
197,48,1000,1 198,48,1000,1
1 input_sample output_sample data_out data_out_valid
2 5 6 0 0 1
3 9 10 1 0 1
4 13 14 2 0 1
5 17 18 3 0 1
6 21 22 4 0 1
7 25 26 5 0 1
8 29 30 6 0 1
9 33 34 7 0 118 1
10 37 38 8 118 651 1
11 41 42 9 651 979 1
12 45 46 10 979 1000 1
13 49 50 11 1000 1
14 53 54 12 1000 1
15 57 58 13 1000 1
16 61 62 14 1000 1
17 65 66 15 1000 1
18 69 70 16 1000 1
19 73 74 17 1000 1
20 77 78 18 1000 1
21 81 82 19 1000 1
22 85 86 20 1000 1
23 89 90 21 1000 1
24 93 94 22 1000 1
25 97 98 23 1000 1
26 101 102 24 1000 1
27 105 106 25 1000 1
28 109 110 26 1000 1
29 113 114 27 1000 1
30 117 118 28 1000 1
31 121 122 29 1000 1
32 125 126 30 1000 1
33 129 130 31 1000 1
34 133 134 32 1000 1
35 137 138 33 1000 1
36 141 142 34 1000 1
37 145 146 35 1000 1
38 149 150 36 1000 1
39 153 154 37 1000 1
40 157 158 38 1000 1
41 161 162 39 1000 1
42 165 166 40 1000 1
43 169 170 41 1000 1
44 173 174 42 1000 1
45 177 178 43 1000 1
46 181 182 44 1000 1
47 185 186 45 1000 1
48 189 190 46 1000 1
49 193 194 47 1000 1
50 197 198 48 1000 1
@@ -5,11 +5,11 @@ sample,data_out
3,0 3,0
4,0 4,0
5,0 5,0
6,0 6,9
7,9 7,634
8,634 8,1513
9,1513 9,341
10,341 10,0
11,0 11,0
12,0 12,0
13,0 13,0
1 sample data_out
5 3 0
6 4 0
7 5 0
8 6 0 9
9 7 9 634
10 8 634 1513
11 9 1513 341
12 10 341 0
13 11 0
14 12 0
15 13 0
+399 -399
View File
@@ -1,400 +1,400 @@
input_n,data_in,output_n,data_out input_n,data_in,output_n,data_out
5,392,0,0 6,470,0,0
9,704,1,0 10,782,1,0
13,1013,2,0 14,1090,2,0
17,1319,3,0 18,1394,3,0
21,1619,4,0 22,1693,4,0
25,1913,5,0 26,1985,5,0
29,2199,6,0 30,2269,6,0
33,2477,7,0 34,2545,7,6
37,2745,8,6 38,2810,8,99
41,3002,9,99 42,3064,9,354
45,3247,10,354 46,3306,10,664
49,3479,11,664 50,3535,11,974
53,3698,12,974 54,3750,12,1279
57,3902,13,1279 58,3950,13,1580
61,4090,14,1580 62,4135,14,1875
65,4263,15,1875 66,4303,15,2161
69,4418,16,2161 70,4455,16,2440
73,4557,17,2440 74,4588,17,2709
77,4677,18,2709 78,4704,18,2967
81,4778,19,2967 82,4801,19,3214
85,4861,20,3214 86,4879,20,3448
89,4925,21,3448 90,4938,21,3668
93,4969,22,3668 94,4977,22,3874
97,4994,23,3874 98,4997,23,4064
101,4999,24,4064 102,4997,24,4238
105,4984,25,4238 106,4977,25,4396
109,4950,26,4396 110,4938,26,4536
113,4896,27,4536 114,4879,27,4659
117,4822,28,4659 118,4801,28,4763
121,4730,29,4763 122,4704,29,4848
125,4619,30,4848 126,4588,30,4914
129,4490,31,4914 130,4455,31,4960
133,4343,32,4960 134,4303,32,4988
137,4179,33,4988 138,4135,33,4995
141,3998,34,4995 142,3950,34,4983
145,3802,35,4983 146,3750,35,4951
149,3590,36,4951 150,3535,36,4899
153,3365,37,4899 154,3306,37,4828
157,3126,38,4828 158,3064,38,4738
161,2875,39,4738 162,2810,39,4630
165,2612,40,4630 166,2545,40,4503
169,2339,41,4503 170,2269,41,4358
173,2057,42,4358 174,1985,42,4196
177,1767,43,4196 178,1693,43,4018
181,1470,44,4018 182,1394,44,3824
185,1167,45,3824 186,1090,45,3614
189,859,46,3614 190,782,46,3390
193,548,47,3390 194,470,47,3154
197,235,48,3154 198,157,48,2904
201,-78,49,2904 202,-157,49,2643
205,-392,50,2643 206,-470,50,2371
209,-704,51,2371 210,-782,51,2091
213,-1013,52,2091 214,-1090,52,1802
217,-1319,53,1802 218,-1394,53,1506
221,-1619,54,1506 222,-1693,54,1203
225,-1913,55,1203 226,-1985,55,896
229,-2199,56,896 230,-2269,56,586
233,-2477,57,586 234,-2545,57,274
237,-2745,58,274 238,-2810,58,-40
241,-3002,59,-40 242,-3064,59,-353
245,-3247,60,-353 246,-3306,60,-665
249,-3479,61,-665 250,-3535,61,-975
253,-3698,62,-975 254,-3750,62,-1280
257,-3902,63,-1280 258,-3950,63,-1581
261,-4090,64,-1581 262,-4135,64,-1876
265,-4263,65,-1876 266,-4303,65,-2162
269,-4418,66,-2162 270,-4455,66,-2441
273,-4557,67,-2441 274,-4588,67,-2710
277,-4677,68,-2710 278,-4704,68,-2968
281,-4778,69,-2968 282,-4801,69,-3215
285,-4861,70,-3215 286,-4879,70,-3449
289,-4925,71,-3449 290,-4938,71,-3669
293,-4969,72,-3669 294,-4977,72,-3875
297,-4994,73,-3875 298,-4997,73,-4065
301,-4999,74,-4065 302,-4997,74,-4239
305,-4984,75,-4239 306,-4977,75,-4397
309,-4950,76,-4397 310,-4938,76,-4537
313,-4896,77,-4537 314,-4879,77,-4660
317,-4822,78,-4660 318,-4801,78,-4764
321,-4730,79,-4764 322,-4704,79,-4849
325,-4619,80,-4849 326,-4588,80,-4915
329,-4490,81,-4915 330,-4455,81,-4961
333,-4343,82,-4961 334,-4303,82,-4989
337,-4179,83,-4989 338,-4135,83,-4996
341,-3998,84,-4996 342,-3950,84,-4984
345,-3802,85,-4984 346,-3750,85,-4952
349,-3590,86,-4952 350,-3535,86,-4900
353,-3365,87,-4900 354,-3306,87,-4829
357,-3126,88,-4829 358,-3064,88,-4739
361,-2875,89,-4739 362,-2810,89,-4631
365,-2612,90,-4631 366,-2545,90,-4504
369,-2339,91,-4504 370,-2269,91,-4359
373,-2057,92,-4359 374,-1985,92,-4197
377,-1767,93,-4197 378,-1693,93,-4019
381,-1470,94,-4019 382,-1394,94,-3825
385,-1167,95,-3825 386,-1090,95,-3615
389,-859,96,-3615 390,-782,96,-3391
393,-548,97,-3391 394,-470,97,-3155
397,-235,98,-3155 398,-157,98,-2905
401,78,99,-2905 402,157,99,-2644
405,392,100,-2644 406,470,100,-2372
409,704,101,-2372 410,782,101,-2091
413,1013,102,-2091 414,1090,102,-1803
417,1319,103,-1803 418,1394,103,-1507
421,1619,104,-1507 422,1693,104,-1204
425,1913,105,-1204 426,1985,105,-897
429,2199,106,-897 430,2269,106,-587
433,2477,107,-587 434,2545,107,-275
437,2745,108,-275 438,2810,108,39
441,3002,109,39 442,3064,109,352
445,3247,110,352 446,3306,110,664
449,3479,111,664 450,3535,111,974
453,3698,112,974 454,3750,112,1279
457,3902,113,1279 458,3950,113,1580
461,4090,114,1580 462,4135,114,1875
465,4263,115,1875 466,4303,115,2161
469,4418,116,2161 470,4455,116,2440
473,4557,117,2440 474,4588,117,2709
477,4677,118,2709 478,4704,118,2967
481,4778,119,2967 482,4801,119,3214
485,4861,120,3214 486,4879,120,3448
489,4925,121,3448 490,4938,121,3668
493,4969,122,3668 494,4977,122,3874
497,4994,123,3874 498,4997,123,4064
501,4999,124,4064 502,4997,124,4238
505,4984,125,4238 506,4977,125,4396
509,4950,126,4396 510,4938,126,4536
513,4896,127,4536 514,4879,127,4659
517,4822,128,4659 518,4801,128,4763
521,4730,129,4763 522,4704,129,4848
525,4619,130,4848 526,4588,130,4914
529,4490,131,4914 530,4455,131,4960
533,4343,132,4960 534,4303,132,4988
537,4179,133,4988 538,4135,133,4995
541,3998,134,4995 542,3950,134,4983
545,3802,135,4983 546,3750,135,4951
549,3590,136,4951 550,3535,136,4899
553,3365,137,4899 554,3306,137,4828
557,3126,138,4828 558,3064,138,4738
561,2875,139,4738 562,2810,139,4630
565,2612,140,4630 566,2545,140,4503
569,2339,141,4503 570,2269,141,4358
573,2057,142,4358 574,1985,142,4196
577,1767,143,4196 578,1693,143,4018
581,1470,144,4018 582,1394,144,3824
585,1167,145,3824 586,1090,145,3614
589,859,146,3614 590,782,146,3390
593,548,147,3390 594,470,147,3154
597,235,148,3154 598,157,148,2904
601,-78,149,2904 602,-157,149,2643
605,-392,150,2643 606,-470,150,2371
609,-704,151,2371 610,-782,151,2091
613,-1013,152,2091 614,-1090,152,1802
617,-1319,153,1802 618,-1394,153,1506
621,-1619,154,1506 622,-1693,154,1203
625,-1913,155,1203 626,-1985,155,896
629,-2199,156,896 630,-2269,156,586
633,-2477,157,586 634,-2545,157,274
637,-2745,158,274 638,-2810,158,-40
641,-3002,159,-40 642,-3064,159,-353
645,-3247,160,-353 646,-3306,160,-665
649,-3479,161,-665 650,-3535,161,-975
653,-3698,162,-975 654,-3750,162,-1280
657,-3902,163,-1280 658,-3950,163,-1581
661,-4090,164,-1581 662,-4135,164,-1876
665,-4263,165,-1876 666,-4303,165,-2162
669,-4418,166,-2162 670,-4455,166,-2441
673,-4557,167,-2441 674,-4588,167,-2710
677,-4677,168,-2710 678,-4704,168,-2968
681,-4778,169,-2968 682,-4801,169,-3215
685,-4861,170,-3215 686,-4879,170,-3449
689,-4925,171,-3449 690,-4938,171,-3669
693,-4969,172,-3669 694,-4977,172,-3875
697,-4994,173,-3875 698,-4997,173,-4065
701,-4999,174,-4065 702,-4997,174,-4239
705,-4984,175,-4239 706,-4977,175,-4397
709,-4950,176,-4397 710,-4938,176,-4537
713,-4896,177,-4537 714,-4879,177,-4660
717,-4822,178,-4660 718,-4801,178,-4764
721,-4730,179,-4764 722,-4704,179,-4849
725,-4619,180,-4849 726,-4588,180,-4915
729,-4490,181,-4915 730,-4455,181,-4961
733,-4343,182,-4961 734,-4303,182,-4989
737,-4179,183,-4989 738,-4135,183,-4996
741,-3998,184,-4996 742,-3950,184,-4984
745,-3802,185,-4984 746,-3750,185,-4952
749,-3590,186,-4952 750,-3535,186,-4900
753,-3365,187,-4900 754,-3306,187,-4829
757,-3126,188,-4829 758,-3064,188,-4739
761,-2875,189,-4739 762,-2810,189,-4631
765,-2612,190,-4631 766,-2545,190,-4504
769,-2339,191,-4504 770,-2269,191,-4359
773,-2057,192,-4359 774,-1985,192,-4197
777,-1767,193,-4197 778,-1693,193,-4019
781,-1470,194,-4019 782,-1394,194,-3825
785,-1167,195,-3825 786,-1090,195,-3615
789,-859,196,-3615 790,-782,196,-3391
793,-548,197,-3391 794,-470,197,-3155
797,-235,198,-3155 798,-157,198,-2905
801,78,199,-2905 802,157,199,-2644
805,392,200,-2644 806,470,200,-2372
809,704,201,-2372 810,782,201,-2091
813,1013,202,-2091 814,1090,202,-1803
817,1319,203,-1803 818,1394,203,-1507
821,1619,204,-1507 822,1693,204,-1204
825,1913,205,-1204 826,1985,205,-897
829,2199,206,-897 830,2269,206,-587
833,2477,207,-587 834,2545,207,-275
837,2745,208,-275 838,2810,208,39
841,3002,209,39 842,3064,209,352
845,3247,210,352 846,3306,210,664
849,3479,211,664 850,3535,211,974
853,3698,212,974 854,3750,212,1279
857,3902,213,1279 858,3950,213,1580
861,4090,214,1580 862,4135,214,1875
865,4263,215,1875 866,4303,215,2161
869,4418,216,2161 870,4455,216,2440
873,4557,217,2440 874,4588,217,2709
877,4677,218,2709 878,4704,218,2967
881,4778,219,2967 882,4801,219,3214
885,4861,220,3214 886,4879,220,3448
889,4925,221,3448 890,4938,221,3668
893,4969,222,3668 894,4977,222,3874
897,4994,223,3874 898,4997,223,4064
901,4999,224,4064 902,4997,224,4238
905,4984,225,4238 906,4977,225,4396
909,4950,226,4396 910,4938,226,4536
913,4896,227,4536 914,4879,227,4659
917,4822,228,4659 918,4801,228,4763
921,4730,229,4763 922,4704,229,4848
925,4619,230,4848 926,4588,230,4914
929,4490,231,4914 930,4455,231,4960
933,4343,232,4960 934,4303,232,4988
937,4179,233,4988 938,4135,233,4995
941,3998,234,4995 942,3950,234,4983
945,3802,235,4983 946,3750,235,4951
949,3590,236,4951 950,3535,236,4899
953,3365,237,4899 954,3306,237,4828
957,3126,238,4828 958,3064,238,4738
961,2875,239,4738 962,2810,239,4630
965,2612,240,4630 966,2545,240,4503
969,2339,241,4503 970,2269,241,4358
973,2057,242,4358 974,1985,242,4196
977,1767,243,4196 978,1693,243,4018
981,1470,244,4018 982,1394,244,3824
985,1167,245,3824 986,1090,245,3614
989,859,246,3614 990,782,246,3390
993,548,247,3390 994,470,247,3154
997,235,248,3154 998,157,248,2904
1001,-78,249,2904 1002,-157,249,2643
1005,-392,250,2643 1006,-470,250,2371
1009,-704,251,2371 1010,-782,251,2091
1013,-1013,252,2091 1014,-1090,252,1802
1017,-1319,253,1802 1018,-1394,253,1506
1021,-1619,254,1506 1022,-1693,254,1203
1025,-1913,255,1203 1026,-1985,255,896
1029,-2199,256,896 1030,-2269,256,586
1033,-2477,257,586 1034,-2545,257,274
1037,-2745,258,274 1038,-2810,258,-40
1041,-3002,259,-40 1042,-3064,259,-353
1045,-3247,260,-353 1046,-3306,260,-665
1049,-3479,261,-665 1050,-3535,261,-975
1053,-3698,262,-975 1054,-3750,262,-1280
1057,-3902,263,-1280 1058,-3950,263,-1581
1061,-4090,264,-1581 1062,-4135,264,-1876
1065,-4263,265,-1876 1066,-4303,265,-2162
1069,-4418,266,-2162 1070,-4455,266,-2441
1073,-4557,267,-2441 1074,-4588,267,-2710
1077,-4677,268,-2710 1078,-4704,268,-2968
1081,-4778,269,-2968 1082,-4801,269,-3215
1085,-4861,270,-3215 1086,-4879,270,-3449
1089,-4925,271,-3449 1090,-4938,271,-3669
1093,-4969,272,-3669 1094,-4977,272,-3875
1097,-4994,273,-3875 1098,-4997,273,-4065
1101,-4999,274,-4065 1102,-4997,274,-4239
1105,-4984,275,-4239 1106,-4977,275,-4397
1109,-4950,276,-4397 1110,-4938,276,-4537
1113,-4896,277,-4537 1114,-4879,277,-4660
1117,-4822,278,-4660 1118,-4801,278,-4764
1121,-4730,279,-4764 1122,-4704,279,-4849
1125,-4619,280,-4849 1126,-4588,280,-4915
1129,-4490,281,-4915 1130,-4455,281,-4961
1133,-4343,282,-4961 1134,-4303,282,-4989
1137,-4179,283,-4989 1138,-4135,283,-4996
1141,-3998,284,-4996 1142,-3950,284,-4984
1145,-3802,285,-4984 1146,-3750,285,-4952
1149,-3590,286,-4952 1150,-3535,286,-4900
1153,-3365,287,-4900 1154,-3306,287,-4829
1157,-3126,288,-4829 1158,-3064,288,-4739
1161,-2875,289,-4739 1162,-2810,289,-4631
1165,-2612,290,-4631 1166,-2545,290,-4504
1169,-2339,291,-4504 1170,-2269,291,-4359
1173,-2057,292,-4359 1174,-1985,292,-4197
1177,-1767,293,-4197 1178,-1693,293,-4019
1181,-1470,294,-4019 1182,-1394,294,-3825
1185,-1167,295,-3825 1186,-1090,295,-3615
1189,-859,296,-3615 1190,-782,296,-3391
1193,-548,297,-3391 1194,-470,297,-3155
1197,-235,298,-3155 1198,-157,298,-2905
1201,78,299,-2905 1202,157,299,-2644
1205,392,300,-2644 1206,470,300,-2372
1209,704,301,-2372 1210,782,301,-2091
1213,1013,302,-2091 1214,1090,302,-1803
1217,1319,303,-1803 1218,1394,303,-1507
1221,1619,304,-1507 1222,1693,304,-1204
1225,1913,305,-1204 1226,1985,305,-897
1229,2199,306,-897 1230,2269,306,-587
1233,2477,307,-587 1234,2545,307,-275
1237,2745,308,-275 1238,2810,308,39
1241,3002,309,39 1242,3064,309,352
1245,3247,310,352 1246,3306,310,664
1249,3479,311,664 1250,3535,311,974
1253,3698,312,974 1254,3750,312,1279
1257,3902,313,1279 1258,3950,313,1580
1261,4090,314,1580 1262,4135,314,1875
1265,4263,315,1875 1266,4303,315,2161
1269,4418,316,2161 1270,4455,316,2440
1273,4557,317,2440 1274,4588,317,2709
1277,4677,318,2709 1278,4704,318,2967
1281,4778,319,2967 1282,4801,319,3214
1285,4861,320,3214 1286,4879,320,3448
1289,4925,321,3448 1290,4938,321,3668
1293,4969,322,3668 1294,4977,322,3874
1297,4994,323,3874 1298,4997,323,4064
1301,4999,324,4064 1302,4997,324,4238
1305,4984,325,4238 1306,4977,325,4396
1309,4950,326,4396 1310,4938,326,4536
1313,4896,327,4536 1314,4879,327,4659
1317,4822,328,4659 1318,4801,328,4763
1321,4730,329,4763 1322,4704,329,4848
1325,4619,330,4848 1326,4588,330,4914
1329,4490,331,4914 1330,4455,331,4960
1333,4343,332,4960 1334,4303,332,4988
1337,4179,333,4988 1338,4135,333,4995
1341,3998,334,4995 1342,3950,334,4983
1345,3802,335,4983 1346,3750,335,4951
1349,3590,336,4951 1350,3535,336,4899
1353,3365,337,4899 1354,3306,337,4828
1357,3126,338,4828 1358,3064,338,4738
1361,2875,339,4738 1362,2810,339,4630
1365,2612,340,4630 1366,2545,340,4503
1369,2339,341,4503 1370,2269,341,4358
1373,2057,342,4358 1374,1985,342,4196
1377,1767,343,4196 1378,1693,343,4018
1381,1470,344,4018 1382,1394,344,3824
1385,1167,345,3824 1386,1090,345,3614
1389,859,346,3614 1390,782,346,3390
1393,548,347,3390 1394,470,347,3154
1397,235,348,3154 1398,157,348,2904
1401,-78,349,2904 1402,-157,349,2643
1405,-392,350,2643 1406,-470,350,2371
1409,-704,351,2371 1410,-782,351,2091
1413,-1013,352,2091 1414,-1090,352,1802
1417,-1319,353,1802 1418,-1394,353,1506
1421,-1619,354,1506 1422,-1693,354,1203
1425,-1913,355,1203 1426,-1985,355,896
1429,-2199,356,896 1430,-2269,356,586
1433,-2477,357,586 1434,-2545,357,274
1437,-2745,358,274 1438,-2810,358,-40
1441,-3002,359,-40 1442,-3064,359,-353
1445,-3247,360,-353 1446,-3306,360,-665
1449,-3479,361,-665 1450,-3535,361,-975
1453,-3698,362,-975 1454,-3750,362,-1280
1457,-3902,363,-1280 1458,-3950,363,-1581
1461,-4090,364,-1581 1462,-4135,364,-1876
1465,-4263,365,-1876 1466,-4303,365,-2162
1469,-4418,366,-2162 1470,-4455,366,-2441
1473,-4557,367,-2441 1474,-4588,367,-2710
1477,-4677,368,-2710 1478,-4704,368,-2968
1481,-4778,369,-2968 1482,-4801,369,-3215
1485,-4861,370,-3215 1486,-4879,370,-3449
1489,-4925,371,-3449 1490,-4938,371,-3669
1493,-4969,372,-3669 1494,-4977,372,-3875
1497,-4994,373,-3875 1498,-4997,373,-4065
1501,-4999,374,-4065 1502,-4997,374,-4239
1505,-4984,375,-4239 1506,-4977,375,-4397
1509,-4950,376,-4397 1510,-4938,376,-4537
1513,-4896,377,-4537 1514,-4879,377,-4660
1517,-4822,378,-4660 1518,-4801,378,-4764
1521,-4730,379,-4764 1522,-4704,379,-4849
1525,-4619,380,-4849 1526,-4588,380,-4915
1529,-4490,381,-4915 1530,-4455,381,-4961
1533,-4343,382,-4961 1534,-4303,382,-4989
1537,-4179,383,-4989 1538,-4135,383,-4996
1541,-3998,384,-4996 1542,-3950,384,-4984
1545,-3802,385,-4984 1546,-3750,385,-4952
1549,-3590,386,-4952 1550,-3535,386,-4900
1553,-3365,387,-4900 1554,-3306,387,-4829
1557,-3126,388,-4829 1558,-3064,388,-4739
1561,-2875,389,-4739 1562,-2810,389,-4631
1565,-2612,390,-4631 1566,-2545,390,-4504
1569,-2339,391,-4504 1570,-2269,391,-4359
1573,-2057,392,-4359 1574,-1985,392,-4197
1577,-1767,393,-4197 1578,-1693,393,-4019
1581,-1470,394,-4019 1582,-1394,394,-3825
1585,-1167,395,-3825 1586,-1090,395,-3615
1589,-859,396,-3615 1590,-782,396,-3391
1593,-548,397,-3391 1594,-470,397,-3155
1597,-235,398,-3155 1598,-157,398,-2905
1 input_n data_in output_n data_out
2 5 6 392 470 0 0
3 9 10 704 782 1 0
4 13 14 1013 1090 2 0
5 17 18 1319 1394 3 0
6 21 22 1619 1693 4 0
7 25 26 1913 1985 5 0
8 29 30 2199 2269 6 0
9 33 34 2477 2545 7 0 6
10 37 38 2745 2810 8 6 99
11 41 42 3002 3064 9 99 354
12 45 46 3247 3306 10 354 664
13 49 50 3479 3535 11 664 974
14 53 54 3698 3750 12 974 1279
15 57 58 3902 3950 13 1279 1580
16 61 62 4090 4135 14 1580 1875
17 65 66 4263 4303 15 1875 2161
18 69 70 4418 4455 16 2161 2440
19 73 74 4557 4588 17 2440 2709
20 77 78 4677 4704 18 2709 2967
21 81 82 4778 4801 19 2967 3214
22 85 86 4861 4879 20 3214 3448
23 89 90 4925 4938 21 3448 3668
24 93 94 4969 4977 22 3668 3874
25 97 98 4994 4997 23 3874 4064
26 101 102 4999 4997 24 4064 4238
27 105 106 4984 4977 25 4238 4396
28 109 110 4950 4938 26 4396 4536
29 113 114 4896 4879 27 4536 4659
30 117 118 4822 4801 28 4659 4763
31 121 122 4730 4704 29 4763 4848
32 125 126 4619 4588 30 4848 4914
33 129 130 4490 4455 31 4914 4960
34 133 134 4343 4303 32 4960 4988
35 137 138 4179 4135 33 4988 4995
36 141 142 3998 3950 34 4995 4983
37 145 146 3802 3750 35 4983 4951
38 149 150 3590 3535 36 4951 4899
39 153 154 3365 3306 37 4899 4828
40 157 158 3126 3064 38 4828 4738
41 161 162 2875 2810 39 4738 4630
42 165 166 2612 2545 40 4630 4503
43 169 170 2339 2269 41 4503 4358
44 173 174 2057 1985 42 4358 4196
45 177 178 1767 1693 43 4196 4018
46 181 182 1470 1394 44 4018 3824
47 185 186 1167 1090 45 3824 3614
48 189 190 859 782 46 3614 3390
49 193 194 548 470 47 3390 3154
50 197 198 235 157 48 3154 2904
51 201 202 -78 -157 49 2904 2643
52 205 206 -392 -470 50 2643 2371
53 209 210 -704 -782 51 2371 2091
54 213 214 -1013 -1090 52 2091 1802
55 217 218 -1319 -1394 53 1802 1506
56 221 222 -1619 -1693 54 1506 1203
57 225 226 -1913 -1985 55 1203 896
58 229 230 -2199 -2269 56 896 586
59 233 234 -2477 -2545 57 586 274
60 237 238 -2745 -2810 58 274 -40
61 241 242 -3002 -3064 59 -40 -353
62 245 246 -3247 -3306 60 -353 -665
63 249 250 -3479 -3535 61 -665 -975
64 253 254 -3698 -3750 62 -975 -1280
65 257 258 -3902 -3950 63 -1280 -1581
66 261 262 -4090 -4135 64 -1581 -1876
67 265 266 -4263 -4303 65 -1876 -2162
68 269 270 -4418 -4455 66 -2162 -2441
69 273 274 -4557 -4588 67 -2441 -2710
70 277 278 -4677 -4704 68 -2710 -2968
71 281 282 -4778 -4801 69 -2968 -3215
72 285 286 -4861 -4879 70 -3215 -3449
73 289 290 -4925 -4938 71 -3449 -3669
74 293 294 -4969 -4977 72 -3669 -3875
75 297 298 -4994 -4997 73 -3875 -4065
76 301 302 -4999 -4997 74 -4065 -4239
77 305 306 -4984 -4977 75 -4239 -4397
78 309 310 -4950 -4938 76 -4397 -4537
79 313 314 -4896 -4879 77 -4537 -4660
80 317 318 -4822 -4801 78 -4660 -4764
81 321 322 -4730 -4704 79 -4764 -4849
82 325 326 -4619 -4588 80 -4849 -4915
83 329 330 -4490 -4455 81 -4915 -4961
84 333 334 -4343 -4303 82 -4961 -4989
85 337 338 -4179 -4135 83 -4989 -4996
86 341 342 -3998 -3950 84 -4996 -4984
87 345 346 -3802 -3750 85 -4984 -4952
88 349 350 -3590 -3535 86 -4952 -4900
89 353 354 -3365 -3306 87 -4900 -4829
90 357 358 -3126 -3064 88 -4829 -4739
91 361 362 -2875 -2810 89 -4739 -4631
92 365 366 -2612 -2545 90 -4631 -4504
93 369 370 -2339 -2269 91 -4504 -4359
94 373 374 -2057 -1985 92 -4359 -4197
95 377 378 -1767 -1693 93 -4197 -4019
96 381 382 -1470 -1394 94 -4019 -3825
97 385 386 -1167 -1090 95 -3825 -3615
98 389 390 -859 -782 96 -3615 -3391
99 393 394 -548 -470 97 -3391 -3155
100 397 398 -235 -157 98 -3155 -2905
101 401 402 78 157 99 -2905 -2644
102 405 406 392 470 100 -2644 -2372
103 409 410 704 782 101 -2372 -2091
104 413 414 1013 1090 102 -2091 -1803
105 417 418 1319 1394 103 -1803 -1507
106 421 422 1619 1693 104 -1507 -1204
107 425 426 1913 1985 105 -1204 -897
108 429 430 2199 2269 106 -897 -587
109 433 434 2477 2545 107 -587 -275
110 437 438 2745 2810 108 -275 39
111 441 442 3002 3064 109 39 352
112 445 446 3247 3306 110 352 664
113 449 450 3479 3535 111 664 974
114 453 454 3698 3750 112 974 1279
115 457 458 3902 3950 113 1279 1580
116 461 462 4090 4135 114 1580 1875
117 465 466 4263 4303 115 1875 2161
118 469 470 4418 4455 116 2161 2440
119 473 474 4557 4588 117 2440 2709
120 477 478 4677 4704 118 2709 2967
121 481 482 4778 4801 119 2967 3214
122 485 486 4861 4879 120 3214 3448
123 489 490 4925 4938 121 3448 3668
124 493 494 4969 4977 122 3668 3874
125 497 498 4994 4997 123 3874 4064
126 501 502 4999 4997 124 4064 4238
127 505 506 4984 4977 125 4238 4396
128 509 510 4950 4938 126 4396 4536
129 513 514 4896 4879 127 4536 4659
130 517 518 4822 4801 128 4659 4763
131 521 522 4730 4704 129 4763 4848
132 525 526 4619 4588 130 4848 4914
133 529 530 4490 4455 131 4914 4960
134 533 534 4343 4303 132 4960 4988
135 537 538 4179 4135 133 4988 4995
136 541 542 3998 3950 134 4995 4983
137 545 546 3802 3750 135 4983 4951
138 549 550 3590 3535 136 4951 4899
139 553 554 3365 3306 137 4899 4828
140 557 558 3126 3064 138 4828 4738
141 561 562 2875 2810 139 4738 4630
142 565 566 2612 2545 140 4630 4503
143 569 570 2339 2269 141 4503 4358
144 573 574 2057 1985 142 4358 4196
145 577 578 1767 1693 143 4196 4018
146 581 582 1470 1394 144 4018 3824
147 585 586 1167 1090 145 3824 3614
148 589 590 859 782 146 3614 3390
149 593 594 548 470 147 3390 3154
150 597 598 235 157 148 3154 2904
151 601 602 -78 -157 149 2904 2643
152 605 606 -392 -470 150 2643 2371
153 609 610 -704 -782 151 2371 2091
154 613 614 -1013 -1090 152 2091 1802
155 617 618 -1319 -1394 153 1802 1506
156 621 622 -1619 -1693 154 1506 1203
157 625 626 -1913 -1985 155 1203 896
158 629 630 -2199 -2269 156 896 586
159 633 634 -2477 -2545 157 586 274
160 637 638 -2745 -2810 158 274 -40
161 641 642 -3002 -3064 159 -40 -353
162 645 646 -3247 -3306 160 -353 -665
163 649 650 -3479 -3535 161 -665 -975
164 653 654 -3698 -3750 162 -975 -1280
165 657 658 -3902 -3950 163 -1280 -1581
166 661 662 -4090 -4135 164 -1581 -1876
167 665 666 -4263 -4303 165 -1876 -2162
168 669 670 -4418 -4455 166 -2162 -2441
169 673 674 -4557 -4588 167 -2441 -2710
170 677 678 -4677 -4704 168 -2710 -2968
171 681 682 -4778 -4801 169 -2968 -3215
172 685 686 -4861 -4879 170 -3215 -3449
173 689 690 -4925 -4938 171 -3449 -3669
174 693 694 -4969 -4977 172 -3669 -3875
175 697 698 -4994 -4997 173 -3875 -4065
176 701 702 -4999 -4997 174 -4065 -4239
177 705 706 -4984 -4977 175 -4239 -4397
178 709 710 -4950 -4938 176 -4397 -4537
179 713 714 -4896 -4879 177 -4537 -4660
180 717 718 -4822 -4801 178 -4660 -4764
181 721 722 -4730 -4704 179 -4764 -4849
182 725 726 -4619 -4588 180 -4849 -4915
183 729 730 -4490 -4455 181 -4915 -4961
184 733 734 -4343 -4303 182 -4961 -4989
185 737 738 -4179 -4135 183 -4989 -4996
186 741 742 -3998 -3950 184 -4996 -4984
187 745 746 -3802 -3750 185 -4984 -4952
188 749 750 -3590 -3535 186 -4952 -4900
189 753 754 -3365 -3306 187 -4900 -4829
190 757 758 -3126 -3064 188 -4829 -4739
191 761 762 -2875 -2810 189 -4739 -4631
192 765 766 -2612 -2545 190 -4631 -4504
193 769 770 -2339 -2269 191 -4504 -4359
194 773 774 -2057 -1985 192 -4359 -4197
195 777 778 -1767 -1693 193 -4197 -4019
196 781 782 -1470 -1394 194 -4019 -3825
197 785 786 -1167 -1090 195 -3825 -3615
198 789 790 -859 -782 196 -3615 -3391
199 793 794 -548 -470 197 -3391 -3155
200 797 798 -235 -157 198 -3155 -2905
201 801 802 78 157 199 -2905 -2644
202 805 806 392 470 200 -2644 -2372
203 809 810 704 782 201 -2372 -2091
204 813 814 1013 1090 202 -2091 -1803
205 817 818 1319 1394 203 -1803 -1507
206 821 822 1619 1693 204 -1507 -1204
207 825 826 1913 1985 205 -1204 -897
208 829 830 2199 2269 206 -897 -587
209 833 834 2477 2545 207 -587 -275
210 837 838 2745 2810 208 -275 39
211 841 842 3002 3064 209 39 352
212 845 846 3247 3306 210 352 664
213 849 850 3479 3535 211 664 974
214 853 854 3698 3750 212 974 1279
215 857 858 3902 3950 213 1279 1580
216 861 862 4090 4135 214 1580 1875
217 865 866 4263 4303 215 1875 2161
218 869 870 4418 4455 216 2161 2440
219 873 874 4557 4588 217 2440 2709
220 877 878 4677 4704 218 2709 2967
221 881 882 4778 4801 219 2967 3214
222 885 886 4861 4879 220 3214 3448
223 889 890 4925 4938 221 3448 3668
224 893 894 4969 4977 222 3668 3874
225 897 898 4994 4997 223 3874 4064
226 901 902 4999 4997 224 4064 4238
227 905 906 4984 4977 225 4238 4396
228 909 910 4950 4938 226 4396 4536
229 913 914 4896 4879 227 4536 4659
230 917 918 4822 4801 228 4659 4763
231 921 922 4730 4704 229 4763 4848
232 925 926 4619 4588 230 4848 4914
233 929 930 4490 4455 231 4914 4960
234 933 934 4343 4303 232 4960 4988
235 937 938 4179 4135 233 4988 4995
236 941 942 3998 3950 234 4995 4983
237 945 946 3802 3750 235 4983 4951
238 949 950 3590 3535 236 4951 4899
239 953 954 3365 3306 237 4899 4828
240 957 958 3126 3064 238 4828 4738
241 961 962 2875 2810 239 4738 4630
242 965 966 2612 2545 240 4630 4503
243 969 970 2339 2269 241 4503 4358
244 973 974 2057 1985 242 4358 4196
245 977 978 1767 1693 243 4196 4018
246 981 982 1470 1394 244 4018 3824
247 985 986 1167 1090 245 3824 3614
248 989 990 859 782 246 3614 3390
249 993 994 548 470 247 3390 3154
250 997 998 235 157 248 3154 2904
251 1001 1002 -78 -157 249 2904 2643
252 1005 1006 -392 -470 250 2643 2371
253 1009 1010 -704 -782 251 2371 2091
254 1013 1014 -1013 -1090 252 2091 1802
255 1017 1018 -1319 -1394 253 1802 1506
256 1021 1022 -1619 -1693 254 1506 1203
257 1025 1026 -1913 -1985 255 1203 896
258 1029 1030 -2199 -2269 256 896 586
259 1033 1034 -2477 -2545 257 586 274
260 1037 1038 -2745 -2810 258 274 -40
261 1041 1042 -3002 -3064 259 -40 -353
262 1045 1046 -3247 -3306 260 -353 -665
263 1049 1050 -3479 -3535 261 -665 -975
264 1053 1054 -3698 -3750 262 -975 -1280
265 1057 1058 -3902 -3950 263 -1280 -1581
266 1061 1062 -4090 -4135 264 -1581 -1876
267 1065 1066 -4263 -4303 265 -1876 -2162
268 1069 1070 -4418 -4455 266 -2162 -2441
269 1073 1074 -4557 -4588 267 -2441 -2710
270 1077 1078 -4677 -4704 268 -2710 -2968
271 1081 1082 -4778 -4801 269 -2968 -3215
272 1085 1086 -4861 -4879 270 -3215 -3449
273 1089 1090 -4925 -4938 271 -3449 -3669
274 1093 1094 -4969 -4977 272 -3669 -3875
275 1097 1098 -4994 -4997 273 -3875 -4065
276 1101 1102 -4999 -4997 274 -4065 -4239
277 1105 1106 -4984 -4977 275 -4239 -4397
278 1109 1110 -4950 -4938 276 -4397 -4537
279 1113 1114 -4896 -4879 277 -4537 -4660
280 1117 1118 -4822 -4801 278 -4660 -4764
281 1121 1122 -4730 -4704 279 -4764 -4849
282 1125 1126 -4619 -4588 280 -4849 -4915
283 1129 1130 -4490 -4455 281 -4915 -4961
284 1133 1134 -4343 -4303 282 -4961 -4989
285 1137 1138 -4179 -4135 283 -4989 -4996
286 1141 1142 -3998 -3950 284 -4996 -4984
287 1145 1146 -3802 -3750 285 -4984 -4952
288 1149 1150 -3590 -3535 286 -4952 -4900
289 1153 1154 -3365 -3306 287 -4900 -4829
290 1157 1158 -3126 -3064 288 -4829 -4739
291 1161 1162 -2875 -2810 289 -4739 -4631
292 1165 1166 -2612 -2545 290 -4631 -4504
293 1169 1170 -2339 -2269 291 -4504 -4359
294 1173 1174 -2057 -1985 292 -4359 -4197
295 1177 1178 -1767 -1693 293 -4197 -4019
296 1181 1182 -1470 -1394 294 -4019 -3825
297 1185 1186 -1167 -1090 295 -3825 -3615
298 1189 1190 -859 -782 296 -3615 -3391
299 1193 1194 -548 -470 297 -3391 -3155
300 1197 1198 -235 -157 298 -3155 -2905
301 1201 1202 78 157 299 -2905 -2644
302 1205 1206 392 470 300 -2644 -2372
303 1209 1210 704 782 301 -2372 -2091
304 1213 1214 1013 1090 302 -2091 -1803
305 1217 1218 1319 1394 303 -1803 -1507
306 1221 1222 1619 1693 304 -1507 -1204
307 1225 1226 1913 1985 305 -1204 -897
308 1229 1230 2199 2269 306 -897 -587
309 1233 1234 2477 2545 307 -587 -275
310 1237 1238 2745 2810 308 -275 39
311 1241 1242 3002 3064 309 39 352
312 1245 1246 3247 3306 310 352 664
313 1249 1250 3479 3535 311 664 974
314 1253 1254 3698 3750 312 974 1279
315 1257 1258 3902 3950 313 1279 1580
316 1261 1262 4090 4135 314 1580 1875
317 1265 1266 4263 4303 315 1875 2161
318 1269 1270 4418 4455 316 2161 2440
319 1273 1274 4557 4588 317 2440 2709
320 1277 1278 4677 4704 318 2709 2967
321 1281 1282 4778 4801 319 2967 3214
322 1285 1286 4861 4879 320 3214 3448
323 1289 1290 4925 4938 321 3448 3668
324 1293 1294 4969 4977 322 3668 3874
325 1297 1298 4994 4997 323 3874 4064
326 1301 1302 4999 4997 324 4064 4238
327 1305 1306 4984 4977 325 4238 4396
328 1309 1310 4950 4938 326 4396 4536
329 1313 1314 4896 4879 327 4536 4659
330 1317 1318 4822 4801 328 4659 4763
331 1321 1322 4730 4704 329 4763 4848
332 1325 1326 4619 4588 330 4848 4914
333 1329 1330 4490 4455 331 4914 4960
334 1333 1334 4343 4303 332 4960 4988
335 1337 1338 4179 4135 333 4988 4995
336 1341 1342 3998 3950 334 4995 4983
337 1345 1346 3802 3750 335 4983 4951
338 1349 1350 3590 3535 336 4951 4899
339 1353 1354 3365 3306 337 4899 4828
340 1357 1358 3126 3064 338 4828 4738
341 1361 1362 2875 2810 339 4738 4630
342 1365 1366 2612 2545 340 4630 4503
343 1369 1370 2339 2269 341 4503 4358
344 1373 1374 2057 1985 342 4358 4196
345 1377 1378 1767 1693 343 4196 4018
346 1381 1382 1470 1394 344 4018 3824
347 1385 1386 1167 1090 345 3824 3614
348 1389 1390 859 782 346 3614 3390
349 1393 1394 548 470 347 3390 3154
350 1397 1398 235 157 348 3154 2904
351 1401 1402 -78 -157 349 2904 2643
352 1405 1406 -392 -470 350 2643 2371
353 1409 1410 -704 -782 351 2371 2091
354 1413 1414 -1013 -1090 352 2091 1802
355 1417 1418 -1319 -1394 353 1802 1506
356 1421 1422 -1619 -1693 354 1506 1203
357 1425 1426 -1913 -1985 355 1203 896
358 1429 1430 -2199 -2269 356 896 586
359 1433 1434 -2477 -2545 357 586 274
360 1437 1438 -2745 -2810 358 274 -40
361 1441 1442 -3002 -3064 359 -40 -353
362 1445 1446 -3247 -3306 360 -353 -665
363 1449 1450 -3479 -3535 361 -665 -975
364 1453 1454 -3698 -3750 362 -975 -1280
365 1457 1458 -3902 -3950 363 -1280 -1581
366 1461 1462 -4090 -4135 364 -1581 -1876
367 1465 1466 -4263 -4303 365 -1876 -2162
368 1469 1470 -4418 -4455 366 -2162 -2441
369 1473 1474 -4557 -4588 367 -2441 -2710
370 1477 1478 -4677 -4704 368 -2710 -2968
371 1481 1482 -4778 -4801 369 -2968 -3215
372 1485 1486 -4861 -4879 370 -3215 -3449
373 1489 1490 -4925 -4938 371 -3449 -3669
374 1493 1494 -4969 -4977 372 -3669 -3875
375 1497 1498 -4994 -4997 373 -3875 -4065
376 1501 1502 -4999 -4997 374 -4065 -4239
377 1505 1506 -4984 -4977 375 -4239 -4397
378 1509 1510 -4950 -4938 376 -4397 -4537
379 1513 1514 -4896 -4879 377 -4537 -4660
380 1517 1518 -4822 -4801 378 -4660 -4764
381 1521 1522 -4730 -4704 379 -4764 -4849
382 1525 1526 -4619 -4588 380 -4849 -4915
383 1529 1530 -4490 -4455 381 -4915 -4961
384 1533 1534 -4343 -4303 382 -4961 -4989
385 1537 1538 -4179 -4135 383 -4989 -4996
386 1541 1542 -3998 -3950 384 -4996 -4984
387 1545 1546 -3802 -3750 385 -4984 -4952
388 1549 1550 -3590 -3535 386 -4952 -4900
389 1553 1554 -3365 -3306 387 -4900 -4829
390 1557 1558 -3126 -3064 388 -4829 -4739
391 1561 1562 -2875 -2810 389 -4739 -4631
392 1565 1566 -2612 -2545 390 -4631 -4504
393 1569 1570 -2339 -2269 391 -4504 -4359
394 1573 1574 -2057 -1985 392 -4359 -4197
395 1577 1578 -1767 -1693 393 -4197 -4019
396 1581 1582 -1470 -1394 394 -4019 -3825
397 1585 1586 -1167 -1090 395 -3825 -3615
398 1589 1590 -859 -782 396 -3615 -3391
399 1593 1594 -548 -470 397 -3391 -3155
400 1597 1598 -235 -157 398 -3155 -2905
File diff suppressed because it is too large Load Diff
+100 -100
View File
@@ -1,101 +1,101 @@
sample,sin_out,cos_out,dds_ready sample,sin_out,cos_out,dds_ready
0,0,32757,1 0,0,32767,0
1,9512,-31113,1 1,0,32767,0
2,-26319,-18868,1 2,0,32757,0
3,-18868,26319,1 3,31113,-9512,1
4,31113,9512,1 4,-26319,-18868,1
5,-32757,0,1 5,-26319,18868,1
6,-31113,9512,1 6,31113,9512,1
7,18868,26319,1 7,-32757,0,1
8,26319,-18868,1 8,-9512,31113,1
9,-9512,-31113,1 9,18868,26319,1
10,0,32757,1 10,18868,-26319,1
11,9512,-31113,1 11,-9512,-31113,1
12,-26319,-18868,1 12,0,32757,1
13,-18868,26319,1 13,31113,-9512,1
14,31113,9512,1 14,-26319,-18868,1
15,-32757,0,1 15,-26319,18868,1
16,-31113,9512,1 16,31113,9512,1
17,18868,26319,1 17,-32757,0,1
18,26319,-18868,1 18,-9512,31113,1
19,-9512,-31113,1 19,18868,26319,1
20,0,32757,1 20,18868,-26319,1
21,9512,-31113,1 21,-9512,-31113,1
22,-26319,-18868,1 22,0,32757,1
23,-18868,26319,1 23,31113,-9512,1
24,31113,9512,1 24,-26319,-18868,1
25,-32757,0,1 25,-26319,18868,1
26,-31113,9512,1 26,31113,9512,1
27,18868,26319,1 27,-32757,0,1
28,26319,-18868,1 28,-9512,31113,1
29,-9512,-31113,1 29,18868,26319,1
30,0,32757,1 30,18868,-26319,1
31,9512,-31113,1 31,-9512,-31113,1
32,-26319,-18868,1 32,0,32757,1
33,-18868,26319,1 33,31113,-9512,1
34,31113,9512,1 34,-26319,-18868,1
35,-32757,0,1 35,-26319,18868,1
36,-31113,9512,1 36,31113,9512,1
37,18868,26319,1 37,-32757,0,1
38,26319,-18868,1 38,-9512,31113,1
39,-9512,-31113,1 39,18868,26319,1
40,0,32757,1 40,18868,-26319,1
41,9512,-31113,1 41,-9512,-31113,1
42,-26319,-18868,1 42,0,32757,1
43,-18868,26319,1 43,31113,-9512,1
44,31113,9512,1 44,-26319,-18868,1
45,-32757,0,1 45,-26319,18868,1
46,-31113,9512,1 46,31113,9512,1
47,18868,26319,1 47,-32757,0,1
48,26319,-18868,1 48,-9512,31113,1
49,-9512,-31113,1 49,18868,26319,1
50,0,32757,1 50,18868,-26319,1
51,9512,-31113,1 51,-9512,-31113,1
52,-26319,-18868,1 52,0,32757,1
53,-18868,26319,1 53,31113,-9512,1
54,31113,9512,1 54,-26319,-18868,1
55,-32757,0,1 55,-26319,18868,1
56,-31113,9512,1 56,31113,9512,1
57,18868,26319,1 57,-32757,0,1
58,26319,-18868,1 58,-9512,31113,1
59,-9512,-31113,1 59,18868,26319,1
60,0,32757,1 60,18868,-26319,1
61,9512,-31113,1 61,-9512,-31113,1
62,-26319,-18868,1 62,0,32757,1
63,-18868,26319,1 63,31113,-9512,1
64,31113,9512,1 64,-26319,-18868,1
65,-32757,0,1 65,-26319,18868,1
66,-31113,9512,1 66,31113,9512,1
67,18868,26319,1 67,-32757,0,1
68,26319,-18868,1 68,-9512,31113,1
69,-9512,-31113,1 69,18868,26319,1
70,0,32757,1 70,18868,-26319,1
71,9512,-31113,1 71,-9512,-31113,1
72,-26319,-18868,1 72,0,32757,1
73,-18868,26319,1 73,31113,-9512,1
74,31113,9512,1 74,-26319,-18868,1
75,-32757,0,1 75,-26319,18868,1
76,-31113,9512,1 76,31113,9512,1
77,18868,26319,1 77,-32757,0,1
78,26319,-18868,1 78,-9512,31113,1
79,-9512,-31113,1 79,18868,26319,1
80,0,32757,1 80,18868,-26319,1
81,9512,-31113,1 81,-9512,-31113,1
82,-26319,-18868,1 82,0,32757,1
83,-18868,26319,1 83,31113,-9512,1
84,31113,9512,1 84,-26319,-18868,1
85,-32757,0,1 85,-26319,18868,1
86,-31113,9512,1 86,31113,9512,1
87,18868,26319,1 87,-32757,0,1
88,26319,-18868,1 88,-9512,31113,1
89,-9512,-31113,1 89,18868,26319,1
90,0,32757,1 90,18868,-26319,1
91,9512,-31113,1 91,-9512,-31113,1
92,-26319,-18868,1 92,0,32757,1
93,-18868,26319,1 93,31113,-9512,1
94,31113,9512,1 94,-26319,-18868,1
95,-32757,0,1 95,-26319,18868,1
96,-31113,9512,1 96,31113,9512,1
97,18868,26319,1 97,-32757,0,1
98,26319,-18868,1 98,-9512,31113,1
99,-9512,-31113,1 99,18868,26319,1
1 sample sin_out cos_out dds_ready
2 0 0 32757 32767 1 0
3 1 9512 0 -31113 32767 1 0
4 2 -26319 0 -18868 32757 1 0
5 3 -18868 31113 26319 -9512 1
6 4 31113 -26319 9512 -18868 1
7 5 -32757 -26319 0 18868 1
8 6 -31113 31113 9512 1
9 7 18868 -32757 26319 0 1
10 8 26319 -9512 -18868 31113 1
11 9 -9512 18868 -31113 26319 1
12 10 0 18868 32757 -26319 1
13 11 9512 -9512 -31113 1
14 12 -26319 0 -18868 32757 1
15 13 -18868 31113 26319 -9512 1
16 14 31113 -26319 9512 -18868 1
17 15 -32757 -26319 0 18868 1
18 16 -31113 31113 9512 1
19 17 18868 -32757 26319 0 1
20 18 26319 -9512 -18868 31113 1
21 19 -9512 18868 -31113 26319 1
22 20 0 18868 32757 -26319 1
23 21 9512 -9512 -31113 1
24 22 -26319 0 -18868 32757 1
25 23 -18868 31113 26319 -9512 1
26 24 31113 -26319 9512 -18868 1
27 25 -32757 -26319 0 18868 1
28 26 -31113 31113 9512 1
29 27 18868 -32757 26319 0 1
30 28 26319 -9512 -18868 31113 1
31 29 -9512 18868 -31113 26319 1
32 30 0 18868 32757 -26319 1
33 31 9512 -9512 -31113 1
34 32 -26319 0 -18868 32757 1
35 33 -18868 31113 26319 -9512 1
36 34 31113 -26319 9512 -18868 1
37 35 -32757 -26319 0 18868 1
38 36 -31113 31113 9512 1
39 37 18868 -32757 26319 0 1
40 38 26319 -9512 -18868 31113 1
41 39 -9512 18868 -31113 26319 1
42 40 0 18868 32757 -26319 1
43 41 9512 -9512 -31113 1
44 42 -26319 0 -18868 32757 1
45 43 -18868 31113 26319 -9512 1
46 44 31113 -26319 9512 -18868 1
47 45 -32757 -26319 0 18868 1
48 46 -31113 31113 9512 1
49 47 18868 -32757 26319 0 1
50 48 26319 -9512 -18868 31113 1
51 49 -9512 18868 -31113 26319 1
52 50 0 18868 32757 -26319 1
53 51 9512 -9512 -31113 1
54 52 -26319 0 -18868 32757 1
55 53 -18868 31113 26319 -9512 1
56 54 31113 -26319 9512 -18868 1
57 55 -32757 -26319 0 18868 1
58 56 -31113 31113 9512 1
59 57 18868 -32757 26319 0 1
60 58 26319 -9512 -18868 31113 1
61 59 -9512 18868 -31113 26319 1
62 60 0 18868 32757 -26319 1
63 61 9512 -9512 -31113 1
64 62 -26319 0 -18868 32757 1
65 63 -18868 31113 26319 -9512 1
66 64 31113 -26319 9512 -18868 1
67 65 -32757 -26319 0 18868 1
68 66 -31113 31113 9512 1
69 67 18868 -32757 26319 0 1
70 68 26319 -9512 -18868 31113 1
71 69 -9512 18868 -31113 26319 1
72 70 0 18868 32757 -26319 1
73 71 9512 -9512 -31113 1
74 72 -26319 0 -18868 32757 1
75 73 -18868 31113 26319 -9512 1
76 74 31113 -26319 9512 -18868 1
77 75 -32757 -26319 0 18868 1
78 76 -31113 31113 9512 1
79 77 18868 -32757 26319 0 1
80 78 26319 -9512 -18868 31113 1
81 79 -9512 18868 -31113 26319 1
82 80 0 18868 32757 -26319 1
83 81 9512 -9512 -31113 1
84 82 -26319 0 -18868 32757 1
85 83 -18868 31113 26319 -9512 1
86 84 31113 -26319 9512 -18868 1
87 85 -32757 -26319 0 18868 1
88 86 -31113 31113 9512 1
89 87 18868 -32757 26319 0 1
90 88 26319 -9512 -18868 31113 1
91 89 -9512 18868 -31113 26319 1
92 90 0 18868 32757 -26319 1
93 91 9512 -9512 -31113 1
94 92 -26319 0 -18868 32757 1
95 93 -18868 31113 26319 -9512 1
96 94 31113 -26319 9512 -18868 1
97 95 -32757 -26319 0 18868 1
98 96 -31113 31113 9512 1
99 97 18868 -32757 26319 0 1
100 98 26319 -9512 -18868 31113 1
101 99 -9512 18868 -31113 26319 1
+498 -498
View File
@@ -1,501 +1,501 @@
sample,sin_out,cos_out,dds_ready sample,sin_out,cos_out,dds_ready
0,0,32767,1 0,0,32767,0
1,0,32757,1 1,0,32767,0
2,0,32757,1 2,0,32767,0
3,804,32728,1 3,0,32757,0
4,804,32728,1 4,0,32757,1
5,1608,32678,1 5,804,32728,1
6,2410,32609,1 6,804,32728,1
7,2410,32609,1 7,1608,32678,1
8,3212,32521,1 8,2410,32609,1
9,4011,32412,1 9,2410,32609,1
10,4011,32412,1 10,3212,32521,1
11,4808,32285,1 11,4011,32412,1
12,5602,32137,1 12,4011,32412,1
13,5602,32137,1 13,4808,32285,1
14,6393,31971,1 14,5602,32137,1
15,6393,31971,1 15,5602,32137,1
16,7179,31785,1 16,6393,31971,1
17,7962,31580,1 17,6393,31971,1
18,7962,31580,1 18,7179,31785,1
19,8739,31356,1 19,7962,31580,1
20,9512,31113,1 20,7962,31580,1
21,9512,31113,1 21,8739,31356,1
22,10278,30852,1 22,9512,31113,1
23,11039,30571,1 23,9512,31113,1
24,11039,30571,1 24,10278,30852,1
25,11793,30273,1 25,11039,30571,1
26,11793,30273,1 26,11039,30571,1
27,12539,29956,1 27,11793,30273,1
28,13279,29621,1 28,11793,30273,1
29,13279,29621,1 29,12539,29956,1
30,14010,29268,1 30,13279,29621,1
31,14732,28898,1 31,13279,29621,1
32,14732,28898,1 32,14010,29268,1
33,15446,28510,1 33,14732,28898,1
34,16151,28105,1 34,14732,28898,1
35,16151,28105,1 35,15446,28510,1
36,16846,27683,1 36,16151,28105,1
37,17530,27245,1 37,16151,28105,1
38,17530,27245,1 38,16846,27683,1
39,18204,26790,1 39,17530,27245,1
40,18204,26790,1 40,17530,27245,1
41,18868,26319,1 41,18204,26790,1
42,19519,25832,1 42,18204,26790,1
43,19519,25832,1 43,18868,26319,1
44,20159,25329,1 44,19519,25832,1
45,20787,24811,1 45,19519,25832,1
46,20787,24811,1 46,20159,25329,1
47,21403,24279,1 47,20787,24811,1
48,22005,23731,1 48,20787,24811,1
49,22005,23731,1 49,21403,24279,1
50,22594,23170,1 50,22005,23731,1
51,22594,23170,1 51,22005,23731,1
52,23170,22594,1 52,22594,23170,1
53,23731,22005,1 53,22594,23170,1
54,23731,22005,1 54,23170,22594,1
55,24279,21403,1 55,23731,22005,1
56,24811,20787,1 56,23731,22005,1
57,24811,20787,1 57,24279,21403,1
58,25329,20159,1 58,24811,20787,1
59,25832,19519,1 59,24811,20787,1
60,25832,19519,1 60,25329,20159,1
61,26319,18868,1 61,25832,19519,1
62,26790,18204,1 62,25832,19519,1
63,26790,18204,1 63,26319,18868,1
64,27245,17530,1 64,26790,18204,1
65,27245,17530,1 65,26790,18204,1
66,27683,16846,1 66,27245,17530,1
67,28105,16151,1 67,27245,17530,1
68,28105,16151,1 68,27683,16846,1
69,28510,15446,1 69,28105,16151,1
70,28898,14732,1 70,28105,16151,1
71,28898,14732,1 71,28510,15446,1
72,29268,14010,1 72,28898,14732,1
73,29621,13279,1 73,28898,14732,1
74,29621,13279,1 74,29268,14010,1
75,29956,12539,1 75,29621,13279,1
76,29956,12539,1 76,29621,13279,1
77,30273,11793,1 77,29956,12539,1
78,30571,11039,1 78,29956,12539,1
79,30571,11039,1 79,30273,11793,1
80,30852,10278,1 80,30571,11039,1
81,31113,9512,1 81,30571,11039,1
82,31113,9512,1 82,30852,10278,1
83,31356,8739,1 83,31113,9512,1
84,31580,7962,1 84,31113,9512,1
85,31580,7962,1 85,31356,8739,1
86,31785,7179,1 86,31580,7962,1
87,31971,6393,1 87,31580,7962,1
88,31971,6393,1 88,31785,7179,1
89,32137,5602,1 89,31971,6393,1
90,32137,5602,1 90,31971,6393,1
91,32285,4808,1 91,32137,5602,1
92,32412,4011,1 92,32137,5602,1
93,32412,4011,1 93,32285,4808,1
94,32521,3212,1 94,32412,4011,1
95,32609,2410,1 95,32412,4011,1
96,32609,2410,1 96,32521,3212,1
97,32678,1608,1 97,32609,2410,1
98,32728,804,1 98,32609,2410,1
99,32728,804,1 99,32678,1608,1
100,32757,0,1 100,32728,804,1
101,32757,0,1 101,32728,804,1
102,0,-32757,1 102,32757,0,1
103,804,-32728,1 103,32757,0,1
104,804,-32728,1 104,32757,0,1
105,1608,-32678,1 105,32728,-804,1
106,2410,-32609,1 106,32728,-804,1
107,2410,-32609,1 107,32678,-1608,1
108,3212,-32521,1 108,32609,-2410,1
109,4011,-32412,1 109,32609,-2410,1
110,4011,-32412,1 110,32521,-3212,1
111,4808,-32285,1 111,32412,-4011,1
112,5602,-32137,1 112,32412,-4011,1
113,5602,-32137,1 113,32285,-4808,1
114,6393,-31971,1 114,32137,-5602,1
115,6393,-31971,1 115,32137,-5602,1
116,7179,-31785,1 116,31971,-6393,1
117,7962,-31580,1 117,31971,-6393,1
118,7962,-31580,1 118,31785,-7179,1
119,8739,-31356,1 119,31580,-7962,1
120,9512,-31113,1 120,31580,-7962,1
121,9512,-31113,1 121,31356,-8739,1
122,10278,-30852,1 122,31113,-9512,1
123,11039,-30571,1 123,31113,-9512,1
124,11039,-30571,1 124,30852,-10278,1
125,11793,-30273,1 125,30571,-11039,1
126,11793,-30273,1 126,30571,-11039,1
127,12539,-29956,1 127,30273,-11793,1
128,13279,-29621,1 128,30273,-11793,1
129,13279,-29621,1 129,29956,-12539,1
130,14010,-29268,1 130,29621,-13279,1
131,14732,-28898,1 131,29621,-13279,1
132,14732,-28898,1 132,29268,-14010,1
133,15446,-28510,1 133,28898,-14732,1
134,16151,-28105,1 134,28898,-14732,1
135,16151,-28105,1 135,28510,-15446,1
136,16846,-27683,1 136,28105,-16151,1
137,17530,-27245,1 137,28105,-16151,1
138,17530,-27245,1 138,27683,-16846,1
139,18204,-26790,1 139,27245,-17530,1
140,18204,-26790,1 140,27245,-17530,1
141,18868,-26319,1 141,26790,-18204,1
142,19519,-25832,1 142,26790,-18204,1
143,19519,-25832,1 143,26319,-18868,1
144,20159,-25329,1 144,25832,-19519,1
145,20787,-24811,1 145,25832,-19519,1
146,20787,-24811,1 146,25329,-20159,1
147,21403,-24279,1 147,24811,-20787,1
148,22005,-23731,1 148,24811,-20787,1
149,22005,-23731,1 149,24279,-21403,1
150,22594,-23170,1 150,23731,-22005,1
151,22594,-23170,1 151,23731,-22005,1
152,23170,-22594,1 152,23170,-22594,1
153,23731,-22005,1 153,23170,-22594,1
154,23731,-22005,1 154,22594,-23170,1
155,24279,-21403,1 155,22005,-23731,1
156,24811,-20787,1 156,22005,-23731,1
157,24811,-20787,1 157,21403,-24279,1
158,25329,-20159,1 158,20787,-24811,1
159,25832,-19519,1 159,20787,-24811,1
160,25832,-19519,1 160,20159,-25329,1
161,26319,-18868,1 161,19519,-25832,1
162,26790,-18204,1 162,19519,-25832,1
163,26790,-18204,1 163,18868,-26319,1
164,27245,-17530,1 164,18204,-26790,1
165,27245,-17530,1 165,18204,-26790,1
166,27683,-16846,1 166,17530,-27245,1
167,28105,-16151,1 167,17530,-27245,1
168,28105,-16151,1 168,16846,-27683,1
169,28510,-15446,1 169,16151,-28105,1
170,28898,-14732,1 170,16151,-28105,1
171,28898,-14732,1 171,15446,-28510,1
172,29268,-14010,1 172,14732,-28898,1
173,29621,-13279,1 173,14732,-28898,1
174,29621,-13279,1 174,14010,-29268,1
175,29956,-12539,1 175,13279,-29621,1
176,29956,-12539,1 176,13279,-29621,1
177,30273,-11793,1 177,12539,-29956,1
178,30571,-11039,1 178,12539,-29956,1
179,30571,-11039,1 179,11793,-30273,1
180,30852,-10278,1 180,11039,-30571,1
181,31113,-9512,1 181,11039,-30571,1
182,31113,-9512,1 182,10278,-30852,1
183,31356,-8739,1 183,9512,-31113,1
184,31580,-7962,1 184,9512,-31113,1
185,31580,-7962,1 185,8739,-31356,1
186,31785,-7179,1 186,7962,-31580,1
187,31971,-6393,1 187,7962,-31580,1
188,31971,-6393,1 188,7179,-31785,1
189,32137,-5602,1 189,6393,-31971,1
190,32137,-5602,1 190,6393,-31971,1
191,32285,-4808,1 191,5602,-32137,1
192,32412,-4011,1 192,5602,-32137,1
193,32412,-4011,1 193,4808,-32285,1
194,32521,-3212,1 194,4011,-32412,1
195,32609,-2410,1 195,4011,-32412,1
196,32609,-2410,1 196,3212,-32521,1
197,32678,-1608,1 197,2410,-32609,1
198,32728,-804,1 198,2410,-32609,1
199,32728,-804,1 199,1608,-32678,1
200,32757,0,1 200,804,-32728,1
201,32757,0,1 201,804,-32728,1
202,-32757,0,1 202,0,-32757,1
203,-32728,-804,1 203,0,-32757,1
204,-32728,-804,1 204,-32757,0,1
205,-32678,-1608,1 205,-32728,-804,1
206,-32609,-2410,1 206,-32728,-804,1
207,-32609,-2410,1 207,-32678,-1608,1
208,-32521,-3212,1 208,-32609,-2410,1
209,-32412,-4011,1 209,-32609,-2410,1
210,-32412,-4011,1 210,-32521,-3212,1
211,-32285,-4808,1 211,-32412,-4011,1
212,-32137,-5602,1 212,-32412,-4011,1
213,-32137,-5602,1 213,-32285,-4808,1
214,-31971,-6393,1 214,-32137,-5602,1
215,-31971,-6393,1 215,-32137,-5602,1
216,-31785,-7179,1 216,-31971,-6393,1
217,-31580,-7962,1 217,-31971,-6393,1
218,-31580,-7962,1 218,-31785,-7179,1
219,-31356,-8739,1 219,-31580,-7962,1
220,-31113,-9512,1 220,-31580,-7962,1
221,-31113,-9512,1 221,-31356,-8739,1
222,-30852,-10278,1 222,-31113,-9512,1
223,-30571,-11039,1 223,-31113,-9512,1
224,-30571,-11039,1 224,-30852,-10278,1
225,-30273,-11793,1 225,-30571,-11039,1
226,-30273,-11793,1 226,-30571,-11039,1
227,-29956,-12539,1 227,-30273,-11793,1
228,-29621,-13279,1 228,-30273,-11793,1
229,-29621,-13279,1 229,-29956,-12539,1
230,-29268,-14010,1 230,-29621,-13279,1
231,-28898,-14732,1 231,-29621,-13279,1
232,-28898,-14732,1 232,-29268,-14010,1
233,-28510,-15446,1 233,-28898,-14732,1
234,-28105,-16151,1 234,-28898,-14732,1
235,-28105,-16151,1 235,-28510,-15446,1
236,-27683,-16846,1 236,-28105,-16151,1
237,-27245,-17530,1 237,-28105,-16151,1
238,-27245,-17530,1 238,-27683,-16846,1
239,-26790,-18204,1 239,-27245,-17530,1
240,-26790,-18204,1 240,-27245,-17530,1
241,-26319,-18868,1 241,-26790,-18204,1
242,-25832,-19519,1 242,-26790,-18204,1
243,-25832,-19519,1 243,-26319,-18868,1
244,-25329,-20159,1 244,-25832,-19519,1
245,-24811,-20787,1 245,-25832,-19519,1
246,-24811,-20787,1 246,-25329,-20159,1
247,-24279,-21403,1 247,-24811,-20787,1
248,-23731,-22005,1 248,-24811,-20787,1
249,-23731,-22005,1 249,-24279,-21403,1
250,-23170,-22594,1 250,-23731,-22005,1
251,-23170,-22594,1 251,-23731,-22005,1
252,-22594,-23170,1 252,-23170,-22594,1
253,-22005,-23731,1 253,-23170,-22594,1
254,-22005,-23731,1 254,-22594,-23170,1
255,-21403,-24279,1 255,-22005,-23731,1
256,-20787,-24811,1 256,-22005,-23731,1
257,-20787,-24811,1 257,-21403,-24279,1
258,-20159,-25329,1 258,-20787,-24811,1
259,-19519,-25832,1 259,-20787,-24811,1
260,-19519,-25832,1 260,-20159,-25329,1
261,-18868,-26319,1 261,-19519,-25832,1
262,-18204,-26790,1 262,-19519,-25832,1
263,-18204,-26790,1 263,-18868,-26319,1
264,-17530,-27245,1 264,-18204,-26790,1
265,-17530,-27245,1 265,-18204,-26790,1
266,-16846,-27683,1 266,-17530,-27245,1
267,-16151,-28105,1 267,-17530,-27245,1
268,-16151,-28105,1 268,-16846,-27683,1
269,-15446,-28510,1 269,-16151,-28105,1
270,-14732,-28898,1 270,-16151,-28105,1
271,-14732,-28898,1 271,-15446,-28510,1
272,-14010,-29268,1 272,-14732,-28898,1
273,-13279,-29621,1 273,-14732,-28898,1
274,-13279,-29621,1 274,-14010,-29268,1
275,-12539,-29956,1 275,-13279,-29621,1
276,-12539,-29956,1 276,-13279,-29621,1
277,-11793,-30273,1 277,-12539,-29956,1
278,-11039,-30571,1 278,-12539,-29956,1
279,-11039,-30571,1 279,-11793,-30273,1
280,-10278,-30852,1 280,-11039,-30571,1
281,-9512,-31113,1 281,-11039,-30571,1
282,-9512,-31113,1 282,-10278,-30852,1
283,-8739,-31356,1 283,-9512,-31113,1
284,-7962,-31580,1 284,-9512,-31113,1
285,-7962,-31580,1 285,-8739,-31356,1
286,-7179,-31785,1 286,-7962,-31580,1
287,-6393,-31971,1 287,-7962,-31580,1
288,-6393,-31971,1 288,-7179,-31785,1
289,-5602,-32137,1 289,-6393,-31971,1
290,-5602,-32137,1 290,-6393,-31971,1
291,-4808,-32285,1 291,-5602,-32137,1
292,-4011,-32412,1 292,-5602,-32137,1
293,-4011,-32412,1 293,-4808,-32285,1
294,-3212,-32521,1 294,-4011,-32412,1
295,-2410,-32609,1 295,-4011,-32412,1
296,-2410,-32609,1 296,-3212,-32521,1
297,-1608,-32678,1 297,-2410,-32609,1
298,-804,-32728,1 298,-2410,-32609,1
299,-804,-32728,1 299,-1608,-32678,1
300,0,-32757,1 300,-804,-32728,1
301,0,-32757,1 301,-804,-32728,1
302,-32757,0,1 302,0,-32757,1
303,-32728,804,1 303,0,-32757,1
304,-32728,804,1 304,0,32757,1
305,-32678,1608,1 305,-804,32728,1
306,-32609,2410,1 306,-804,32728,1
307,-32609,2410,1 307,-1608,32678,1
308,-32521,3212,1 308,-2410,32609,1
309,-32412,4011,1 309,-2410,32609,1
310,-32412,4011,1 310,-3212,32521,1
311,-32285,4808,1 311,-4011,32412,1
312,-32137,5602,1 312,-4011,32412,1
313,-32137,5602,1 313,-4808,32285,1
314,-31971,6393,1 314,-5602,32137,1
315,-31971,6393,1 315,-5602,32137,1
316,-31785,7179,1 316,-6393,31971,1
317,-31580,7962,1 317,-6393,31971,1
318,-31580,7962,1 318,-7179,31785,1
319,-31356,8739,1 319,-7962,31580,1
320,-31113,9512,1 320,-7962,31580,1
321,-31113,9512,1 321,-8739,31356,1
322,-30852,10278,1 322,-9512,31113,1
323,-30571,11039,1 323,-9512,31113,1
324,-30571,11039,1 324,-10278,30852,1
325,-30273,11793,1 325,-11039,30571,1
326,-30273,11793,1 326,-11039,30571,1
327,-29956,12539,1 327,-11793,30273,1
328,-29621,13279,1 328,-11793,30273,1
329,-29621,13279,1 329,-12539,29956,1
330,-29268,14010,1 330,-13279,29621,1
331,-28898,14732,1 331,-13279,29621,1
332,-28898,14732,1 332,-14010,29268,1
333,-28510,15446,1 333,-14732,28898,1
334,-28105,16151,1 334,-14732,28898,1
335,-28105,16151,1 335,-15446,28510,1
336,-27683,16846,1 336,-16151,28105,1
337,-27245,17530,1 337,-16151,28105,1
338,-27245,17530,1 338,-16846,27683,1
339,-26790,18204,1 339,-17530,27245,1
340,-26790,18204,1 340,-17530,27245,1
341,-26319,18868,1 341,-18204,26790,1
342,-25832,19519,1 342,-18204,26790,1
343,-25832,19519,1 343,-18868,26319,1
344,-25329,20159,1 344,-19519,25832,1
345,-24811,20787,1 345,-19519,25832,1
346,-24811,20787,1 346,-20159,25329,1
347,-24279,21403,1 347,-20787,24811,1
348,-23731,22005,1 348,-20787,24811,1
349,-23731,22005,1 349,-21403,24279,1
350,-23170,22594,1 350,-22005,23731,1
351,-23170,22594,1 351,-22005,23731,1
352,-22594,23170,1 352,-22594,23170,1
353,-22005,23731,1 353,-22594,23170,1
354,-22005,23731,1 354,-23170,22594,1
355,-21403,24279,1 355,-23731,22005,1
356,-20787,24811,1 356,-23731,22005,1
357,-20787,24811,1 357,-24279,21403,1
358,-20159,25329,1 358,-24811,20787,1
359,-19519,25832,1 359,-24811,20787,1
360,-19519,25832,1 360,-25329,20159,1
361,-18868,26319,1 361,-25832,19519,1
362,-18204,26790,1 362,-25832,19519,1
363,-18204,26790,1 363,-26319,18868,1
364,-17530,27245,1 364,-26790,18204,1
365,-17530,27245,1 365,-26790,18204,1
366,-16846,27683,1 366,-27245,17530,1
367,-16151,28105,1 367,-27245,17530,1
368,-16151,28105,1 368,-27683,16846,1
369,-15446,28510,1 369,-28105,16151,1
370,-14732,28898,1 370,-28105,16151,1
371,-14732,28898,1 371,-28510,15446,1
372,-14010,29268,1 372,-28898,14732,1
373,-13279,29621,1 373,-28898,14732,1
374,-13279,29621,1 374,-29268,14010,1
375,-12539,29956,1 375,-29621,13279,1
376,-12539,29956,1 376,-29621,13279,1
377,-11793,30273,1 377,-29956,12539,1
378,-11039,30571,1 378,-29956,12539,1
379,-11039,30571,1 379,-30273,11793,1
380,-10278,30852,1 380,-30571,11039,1
381,-9512,31113,1 381,-30571,11039,1
382,-9512,31113,1 382,-30852,10278,1
383,-8739,31356,1 383,-31113,9512,1
384,-7962,31580,1 384,-31113,9512,1
385,-7962,31580,1 385,-31356,8739,1
386,-7179,31785,1 386,-31580,7962,1
387,-6393,31971,1 387,-31580,7962,1
388,-6393,31971,1 388,-31785,7179,1
389,-5602,32137,1 389,-31971,6393,1
390,-5602,32137,1 390,-31971,6393,1
391,-4808,32285,1 391,-32137,5602,1
392,-4011,32412,1 392,-32137,5602,1
393,-4011,32412,1 393,-32285,4808,1
394,-3212,32521,1 394,-32412,4011,1
395,-2410,32609,1 395,-32412,4011,1
396,-2410,32609,1 396,-32521,3212,1
397,-1608,32678,1 397,-32609,2410,1
398,-804,32728,1 398,-32609,2410,1
399,-804,32728,1 399,-32678,1608,1
400,0,32757,1 400,-32728,804,1
401,0,32757,1 401,-32728,804,1
402,0,32757,1 402,-32757,0,1
403,804,32728,1 403,-32757,0,1
404,804,32728,1 404,0,32757,1
405,1608,32678,1 405,804,32728,1
406,2410,32609,1 406,804,32728,1
407,2410,32609,1 407,1608,32678,1
408,3212,32521,1 408,2410,32609,1
409,4011,32412,1 409,2410,32609,1
410,4011,32412,1 410,3212,32521,1
411,4808,32285,1 411,4011,32412,1
412,5602,32137,1 412,4011,32412,1
413,5602,32137,1 413,4808,32285,1
414,6393,31971,1 414,5602,32137,1
415,6393,31971,1 415,5602,32137,1
416,7179,31785,1 416,6393,31971,1
417,7962,31580,1 417,6393,31971,1
418,7962,31580,1 418,7179,31785,1
419,8739,31356,1 419,7962,31580,1
420,9512,31113,1 420,7962,31580,1
421,9512,31113,1 421,8739,31356,1
422,10278,30852,1 422,9512,31113,1
423,11039,30571,1 423,9512,31113,1
424,11039,30571,1 424,10278,30852,1
425,11793,30273,1 425,11039,30571,1
426,11793,30273,1 426,11039,30571,1
427,12539,29956,1 427,11793,30273,1
428,13279,29621,1 428,11793,30273,1
429,13279,29621,1 429,12539,29956,1
430,14010,29268,1 430,13279,29621,1
431,14732,28898,1 431,13279,29621,1
432,14732,28898,1 432,14010,29268,1
433,15446,28510,1 433,14732,28898,1
434,16151,28105,1 434,14732,28898,1
435,16151,28105,1 435,15446,28510,1
436,16846,27683,1 436,16151,28105,1
437,17530,27245,1 437,16151,28105,1
438,17530,27245,1 438,16846,27683,1
439,18204,26790,1 439,17530,27245,1
440,18204,26790,1 440,17530,27245,1
441,18868,26319,1 441,18204,26790,1
442,19519,25832,1 442,18204,26790,1
443,19519,25832,1 443,18868,26319,1
444,20159,25329,1 444,19519,25832,1
445,20787,24811,1 445,19519,25832,1
446,20787,24811,1 446,20159,25329,1
447,21403,24279,1 447,20787,24811,1
448,22005,23731,1 448,20787,24811,1
449,22005,23731,1 449,21403,24279,1
450,22594,23170,1 450,22005,23731,1
451,22594,23170,1 451,22005,23731,1
452,23170,22594,1 452,22594,23170,1
453,23731,22005,1 453,22594,23170,1
454,23731,22005,1 454,23170,22594,1
455,24279,21403,1 455,23731,22005,1
456,24811,20787,1 456,23731,22005,1
457,24811,20787,1 457,24279,21403,1
458,25329,20159,1 458,24811,20787,1
459,25832,19519,1 459,24811,20787,1
460,25832,19519,1 460,25329,20159,1
461,26319,18868,1 461,25832,19519,1
462,26790,18204,1 462,25832,19519,1
463,26790,18204,1 463,26319,18868,1
464,27245,17530,1 464,26790,18204,1
465,27245,17530,1 465,26790,18204,1
466,27683,16846,1 466,27245,17530,1
467,28105,16151,1 467,27245,17530,1
468,28105,16151,1 468,27683,16846,1
469,28510,15446,1 469,28105,16151,1
470,28898,14732,1 470,28105,16151,1
471,28898,14732,1 471,28510,15446,1
472,29268,14010,1 472,28898,14732,1
473,29621,13279,1 473,28898,14732,1
474,29621,13279,1 474,29268,14010,1
475,29956,12539,1 475,29621,13279,1
476,29956,12539,1 476,29621,13279,1
477,30273,11793,1 477,29956,12539,1
478,30571,11039,1 478,29956,12539,1
479,30571,11039,1 479,30273,11793,1
480,30852,10278,1 480,30571,11039,1
481,31113,9512,1 481,30571,11039,1
482,31113,9512,1 482,30852,10278,1
483,31356,8739,1 483,31113,9512,1
484,31580,7962,1 484,31113,9512,1
485,31580,7962,1 485,31356,8739,1
486,31785,7179,1 486,31580,7962,1
487,31971,6393,1 487,31580,7962,1
488,31971,6393,1 488,31785,7179,1
489,32137,5602,1 489,31971,6393,1
490,32137,5602,1 490,31971,6393,1
491,32285,4808,1 491,32137,5602,1
492,32412,4011,1 492,32137,5602,1
493,32412,4011,1 493,32285,4808,1
494,32521,3212,1 494,32412,4011,1
495,32609,2410,1 495,32412,4011,1
496,32609,2410,1 496,32521,3212,1
497,32678,1608,1 497,32609,2410,1
498,32728,804,1 498,32609,2410,1
499,32728,804,1 499,32678,1608,1
1 sample sin_out cos_out dds_ready
2 0 0 32767 1 0
3 1 0 32757 32767 1 0
4 2 0 32757 32767 1 0
5 3 804 0 32728 32757 1 0
6 4 804 0 32728 32757 1
7 5 1608 804 32678 32728 1
8 6 2410 804 32609 32728 1
9 7 2410 1608 32609 32678 1
10 8 3212 2410 32521 32609 1
11 9 4011 2410 32412 32609 1
12 10 4011 3212 32412 32521 1
13 11 4808 4011 32285 32412 1
14 12 5602 4011 32137 32412 1
15 13 5602 4808 32137 32285 1
16 14 6393 5602 31971 32137 1
17 15 6393 5602 31971 32137 1
18 16 7179 6393 31785 31971 1
19 17 7962 6393 31580 31971 1
20 18 7962 7179 31580 31785 1
21 19 8739 7962 31356 31580 1
22 20 9512 7962 31113 31580 1
23 21 9512 8739 31113 31356 1
24 22 10278 9512 30852 31113 1
25 23 11039 9512 30571 31113 1
26 24 11039 10278 30571 30852 1
27 25 11793 11039 30273 30571 1
28 26 11793 11039 30273 30571 1
29 27 12539 11793 29956 30273 1
30 28 13279 11793 29621 30273 1
31 29 13279 12539 29621 29956 1
32 30 14010 13279 29268 29621 1
33 31 14732 13279 28898 29621 1
34 32 14732 14010 28898 29268 1
35 33 15446 14732 28510 28898 1
36 34 16151 14732 28105 28898 1
37 35 16151 15446 28105 28510 1
38 36 16846 16151 27683 28105 1
39 37 17530 16151 27245 28105 1
40 38 17530 16846 27245 27683 1
41 39 18204 17530 26790 27245 1
42 40 18204 17530 26790 27245 1
43 41 18868 18204 26319 26790 1
44 42 19519 18204 25832 26790 1
45 43 19519 18868 25832 26319 1
46 44 20159 19519 25329 25832 1
47 45 20787 19519 24811 25832 1
48 46 20787 20159 24811 25329 1
49 47 21403 20787 24279 24811 1
50 48 22005 20787 23731 24811 1
51 49 22005 21403 23731 24279 1
52 50 22594 22005 23170 23731 1
53 51 22594 22005 23170 23731 1
54 52 23170 22594 22594 23170 1
55 53 23731 22594 22005 23170 1
56 54 23731 23170 22005 22594 1
57 55 24279 23731 21403 22005 1
58 56 24811 23731 20787 22005 1
59 57 24811 24279 20787 21403 1
60 58 25329 24811 20159 20787 1
61 59 25832 24811 19519 20787 1
62 60 25832 25329 19519 20159 1
63 61 26319 25832 18868 19519 1
64 62 26790 25832 18204 19519 1
65 63 26790 26319 18204 18868 1
66 64 27245 26790 17530 18204 1
67 65 27245 26790 17530 18204 1
68 66 27683 27245 16846 17530 1
69 67 28105 27245 16151 17530 1
70 68 28105 27683 16151 16846 1
71 69 28510 28105 15446 16151 1
72 70 28898 28105 14732 16151 1
73 71 28898 28510 14732 15446 1
74 72 29268 28898 14010 14732 1
75 73 29621 28898 13279 14732 1
76 74 29621 29268 13279 14010 1
77 75 29956 29621 12539 13279 1
78 76 29956 29621 12539 13279 1
79 77 30273 29956 11793 12539 1
80 78 30571 29956 11039 12539 1
81 79 30571 30273 11039 11793 1
82 80 30852 30571 10278 11039 1
83 81 31113 30571 9512 11039 1
84 82 31113 30852 9512 10278 1
85 83 31356 31113 8739 9512 1
86 84 31580 31113 7962 9512 1
87 85 31580 31356 7962 8739 1
88 86 31785 31580 7179 7962 1
89 87 31971 31580 6393 7962 1
90 88 31971 31785 6393 7179 1
91 89 32137 31971 5602 6393 1
92 90 32137 31971 5602 6393 1
93 91 32285 32137 4808 5602 1
94 92 32412 32137 4011 5602 1
95 93 32412 32285 4011 4808 1
96 94 32521 32412 3212 4011 1
97 95 32609 32412 2410 4011 1
98 96 32609 32521 2410 3212 1
99 97 32678 32609 1608 2410 1
100 98 32728 32609 804 2410 1
101 99 32728 32678 804 1608 1
102 100 32757 32728 0 804 1
103 101 32757 32728 0 804 1
104 102 0 32757 -32757 0 1
105 103 804 32757 -32728 0 1
106 104 804 32757 -32728 0 1
107 105 1608 32728 -32678 -804 1
108 106 2410 32728 -32609 -804 1
109 107 2410 32678 -32609 -1608 1
110 108 3212 32609 -32521 -2410 1
111 109 4011 32609 -32412 -2410 1
112 110 4011 32521 -32412 -3212 1
113 111 4808 32412 -32285 -4011 1
114 112 5602 32412 -32137 -4011 1
115 113 5602 32285 -32137 -4808 1
116 114 6393 32137 -31971 -5602 1
117 115 6393 32137 -31971 -5602 1
118 116 7179 31971 -31785 -6393 1
119 117 7962 31971 -31580 -6393 1
120 118 7962 31785 -31580 -7179 1
121 119 8739 31580 -31356 -7962 1
122 120 9512 31580 -31113 -7962 1
123 121 9512 31356 -31113 -8739 1
124 122 10278 31113 -30852 -9512 1
125 123 11039 31113 -30571 -9512 1
126 124 11039 30852 -30571 -10278 1
127 125 11793 30571 -30273 -11039 1
128 126 11793 30571 -30273 -11039 1
129 127 12539 30273 -29956 -11793 1
130 128 13279 30273 -29621 -11793 1
131 129 13279 29956 -29621 -12539 1
132 130 14010 29621 -29268 -13279 1
133 131 14732 29621 -28898 -13279 1
134 132 14732 29268 -28898 -14010 1
135 133 15446 28898 -28510 -14732 1
136 134 16151 28898 -28105 -14732 1
137 135 16151 28510 -28105 -15446 1
138 136 16846 28105 -27683 -16151 1
139 137 17530 28105 -27245 -16151 1
140 138 17530 27683 -27245 -16846 1
141 139 18204 27245 -26790 -17530 1
142 140 18204 27245 -26790 -17530 1
143 141 18868 26790 -26319 -18204 1
144 142 19519 26790 -25832 -18204 1
145 143 19519 26319 -25832 -18868 1
146 144 20159 25832 -25329 -19519 1
147 145 20787 25832 -24811 -19519 1
148 146 20787 25329 -24811 -20159 1
149 147 21403 24811 -24279 -20787 1
150 148 22005 24811 -23731 -20787 1
151 149 22005 24279 -23731 -21403 1
152 150 22594 23731 -23170 -22005 1
153 151 22594 23731 -23170 -22005 1
154 152 23170 -22594 1
155 153 23731 23170 -22005 -22594 1
156 154 23731 22594 -22005 -23170 1
157 155 24279 22005 -21403 -23731 1
158 156 24811 22005 -20787 -23731 1
159 157 24811 21403 -20787 -24279 1
160 158 25329 20787 -20159 -24811 1
161 159 25832 20787 -19519 -24811 1
162 160 25832 20159 -19519 -25329 1
163 161 26319 19519 -18868 -25832 1
164 162 26790 19519 -18204 -25832 1
165 163 26790 18868 -18204 -26319 1
166 164 27245 18204 -17530 -26790 1
167 165 27245 18204 -17530 -26790 1
168 166 27683 17530 -16846 -27245 1
169 167 28105 17530 -16151 -27245 1
170 168 28105 16846 -16151 -27683 1
171 169 28510 16151 -15446 -28105 1
172 170 28898 16151 -14732 -28105 1
173 171 28898 15446 -14732 -28510 1
174 172 29268 14732 -14010 -28898 1
175 173 29621 14732 -13279 -28898 1
176 174 29621 14010 -13279 -29268 1
177 175 29956 13279 -12539 -29621 1
178 176 29956 13279 -12539 -29621 1
179 177 30273 12539 -11793 -29956 1
180 178 30571 12539 -11039 -29956 1
181 179 30571 11793 -11039 -30273 1
182 180 30852 11039 -10278 -30571 1
183 181 31113 11039 -9512 -30571 1
184 182 31113 10278 -9512 -30852 1
185 183 31356 9512 -8739 -31113 1
186 184 31580 9512 -7962 -31113 1
187 185 31580 8739 -7962 -31356 1
188 186 31785 7962 -7179 -31580 1
189 187 31971 7962 -6393 -31580 1
190 188 31971 7179 -6393 -31785 1
191 189 32137 6393 -5602 -31971 1
192 190 32137 6393 -5602 -31971 1
193 191 32285 5602 -4808 -32137 1
194 192 32412 5602 -4011 -32137 1
195 193 32412 4808 -4011 -32285 1
196 194 32521 4011 -3212 -32412 1
197 195 32609 4011 -2410 -32412 1
198 196 32609 3212 -2410 -32521 1
199 197 32678 2410 -1608 -32609 1
200 198 32728 2410 -804 -32609 1
201 199 32728 1608 -804 -32678 1
202 200 32757 804 0 -32728 1
203 201 32757 804 0 -32728 1
204 202 -32757 0 0 -32757 1
205 203 -32728 0 -804 -32757 1
206 204 -32728 -32757 -804 0 1
207 205 -32678 -32728 -1608 -804 1
208 206 -32609 -32728 -2410 -804 1
209 207 -32609 -32678 -2410 -1608 1
210 208 -32521 -32609 -3212 -2410 1
211 209 -32412 -32609 -4011 -2410 1
212 210 -32412 -32521 -4011 -3212 1
213 211 -32285 -32412 -4808 -4011 1
214 212 -32137 -32412 -5602 -4011 1
215 213 -32137 -32285 -5602 -4808 1
216 214 -31971 -32137 -6393 -5602 1
217 215 -31971 -32137 -6393 -5602 1
218 216 -31785 -31971 -7179 -6393 1
219 217 -31580 -31971 -7962 -6393 1
220 218 -31580 -31785 -7962 -7179 1
221 219 -31356 -31580 -8739 -7962 1
222 220 -31113 -31580 -9512 -7962 1
223 221 -31113 -31356 -9512 -8739 1
224 222 -30852 -31113 -10278 -9512 1
225 223 -30571 -31113 -11039 -9512 1
226 224 -30571 -30852 -11039 -10278 1
227 225 -30273 -30571 -11793 -11039 1
228 226 -30273 -30571 -11793 -11039 1
229 227 -29956 -30273 -12539 -11793 1
230 228 -29621 -30273 -13279 -11793 1
231 229 -29621 -29956 -13279 -12539 1
232 230 -29268 -29621 -14010 -13279 1
233 231 -28898 -29621 -14732 -13279 1
234 232 -28898 -29268 -14732 -14010 1
235 233 -28510 -28898 -15446 -14732 1
236 234 -28105 -28898 -16151 -14732 1
237 235 -28105 -28510 -16151 -15446 1
238 236 -27683 -28105 -16846 -16151 1
239 237 -27245 -28105 -17530 -16151 1
240 238 -27245 -27683 -17530 -16846 1
241 239 -26790 -27245 -18204 -17530 1
242 240 -26790 -27245 -18204 -17530 1
243 241 -26319 -26790 -18868 -18204 1
244 242 -25832 -26790 -19519 -18204 1
245 243 -25832 -26319 -19519 -18868 1
246 244 -25329 -25832 -20159 -19519 1
247 245 -24811 -25832 -20787 -19519 1
248 246 -24811 -25329 -20787 -20159 1
249 247 -24279 -24811 -21403 -20787 1
250 248 -23731 -24811 -22005 -20787 1
251 249 -23731 -24279 -22005 -21403 1
252 250 -23170 -23731 -22594 -22005 1
253 251 -23170 -23731 -22594 -22005 1
254 252 -22594 -23170 -23170 -22594 1
255 253 -22005 -23170 -23731 -22594 1
256 254 -22005 -22594 -23731 -23170 1
257 255 -21403 -22005 -24279 -23731 1
258 256 -20787 -22005 -24811 -23731 1
259 257 -20787 -21403 -24811 -24279 1
260 258 -20159 -20787 -25329 -24811 1
261 259 -19519 -20787 -25832 -24811 1
262 260 -19519 -20159 -25832 -25329 1
263 261 -18868 -19519 -26319 -25832 1
264 262 -18204 -19519 -26790 -25832 1
265 263 -18204 -18868 -26790 -26319 1
266 264 -17530 -18204 -27245 -26790 1
267 265 -17530 -18204 -27245 -26790 1
268 266 -16846 -17530 -27683 -27245 1
269 267 -16151 -17530 -28105 -27245 1
270 268 -16151 -16846 -28105 -27683 1
271 269 -15446 -16151 -28510 -28105 1
272 270 -14732 -16151 -28898 -28105 1
273 271 -14732 -15446 -28898 -28510 1
274 272 -14010 -14732 -29268 -28898 1
275 273 -13279 -14732 -29621 -28898 1
276 274 -13279 -14010 -29621 -29268 1
277 275 -12539 -13279 -29956 -29621 1
278 276 -12539 -13279 -29956 -29621 1
279 277 -11793 -12539 -30273 -29956 1
280 278 -11039 -12539 -30571 -29956 1
281 279 -11039 -11793 -30571 -30273 1
282 280 -10278 -11039 -30852 -30571 1
283 281 -9512 -11039 -31113 -30571 1
284 282 -9512 -10278 -31113 -30852 1
285 283 -8739 -9512 -31356 -31113 1
286 284 -7962 -9512 -31580 -31113 1
287 285 -7962 -8739 -31580 -31356 1
288 286 -7179 -7962 -31785 -31580 1
289 287 -6393 -7962 -31971 -31580 1
290 288 -6393 -7179 -31971 -31785 1
291 289 -5602 -6393 -32137 -31971 1
292 290 -5602 -6393 -32137 -31971 1
293 291 -4808 -5602 -32285 -32137 1
294 292 -4011 -5602 -32412 -32137 1
295 293 -4011 -4808 -32412 -32285 1
296 294 -3212 -4011 -32521 -32412 1
297 295 -2410 -4011 -32609 -32412 1
298 296 -2410 -3212 -32609 -32521 1
299 297 -1608 -2410 -32678 -32609 1
300 298 -804 -2410 -32728 -32609 1
301 299 -804 -1608 -32728 -32678 1
302 300 0 -804 -32757 -32728 1
303 301 0 -804 -32757 -32728 1
304 302 -32757 0 0 -32757 1
305 303 -32728 0 804 -32757 1
306 304 -32728 0 804 32757 1
307 305 -32678 -804 1608 32728 1
308 306 -32609 -804 2410 32728 1
309 307 -32609 -1608 2410 32678 1
310 308 -32521 -2410 3212 32609 1
311 309 -32412 -2410 4011 32609 1
312 310 -32412 -3212 4011 32521 1
313 311 -32285 -4011 4808 32412 1
314 312 -32137 -4011 5602 32412 1
315 313 -32137 -4808 5602 32285 1
316 314 -31971 -5602 6393 32137 1
317 315 -31971 -5602 6393 32137 1
318 316 -31785 -6393 7179 31971 1
319 317 -31580 -6393 7962 31971 1
320 318 -31580 -7179 7962 31785 1
321 319 -31356 -7962 8739 31580 1
322 320 -31113 -7962 9512 31580 1
323 321 -31113 -8739 9512 31356 1
324 322 -30852 -9512 10278 31113 1
325 323 -30571 -9512 11039 31113 1
326 324 -30571 -10278 11039 30852 1
327 325 -30273 -11039 11793 30571 1
328 326 -30273 -11039 11793 30571 1
329 327 -29956 -11793 12539 30273 1
330 328 -29621 -11793 13279 30273 1
331 329 -29621 -12539 13279 29956 1
332 330 -29268 -13279 14010 29621 1
333 331 -28898 -13279 14732 29621 1
334 332 -28898 -14010 14732 29268 1
335 333 -28510 -14732 15446 28898 1
336 334 -28105 -14732 16151 28898 1
337 335 -28105 -15446 16151 28510 1
338 336 -27683 -16151 16846 28105 1
339 337 -27245 -16151 17530 28105 1
340 338 -27245 -16846 17530 27683 1
341 339 -26790 -17530 18204 27245 1
342 340 -26790 -17530 18204 27245 1
343 341 -26319 -18204 18868 26790 1
344 342 -25832 -18204 19519 26790 1
345 343 -25832 -18868 19519 26319 1
346 344 -25329 -19519 20159 25832 1
347 345 -24811 -19519 20787 25832 1
348 346 -24811 -20159 20787 25329 1
349 347 -24279 -20787 21403 24811 1
350 348 -23731 -20787 22005 24811 1
351 349 -23731 -21403 22005 24279 1
352 350 -23170 -22005 22594 23731 1
353 351 -23170 -22005 22594 23731 1
354 352 -22594 23170 1
355 353 -22005 -22594 23731 23170 1
356 354 -22005 -23170 23731 22594 1
357 355 -21403 -23731 24279 22005 1
358 356 -20787 -23731 24811 22005 1
359 357 -20787 -24279 24811 21403 1
360 358 -20159 -24811 25329 20787 1
361 359 -19519 -24811 25832 20787 1
362 360 -19519 -25329 25832 20159 1
363 361 -18868 -25832 26319 19519 1
364 362 -18204 -25832 26790 19519 1
365 363 -18204 -26319 26790 18868 1
366 364 -17530 -26790 27245 18204 1
367 365 -17530 -26790 27245 18204 1
368 366 -16846 -27245 27683 17530 1
369 367 -16151 -27245 28105 17530 1
370 368 -16151 -27683 28105 16846 1
371 369 -15446 -28105 28510 16151 1
372 370 -14732 -28105 28898 16151 1
373 371 -14732 -28510 28898 15446 1
374 372 -14010 -28898 29268 14732 1
375 373 -13279 -28898 29621 14732 1
376 374 -13279 -29268 29621 14010 1
377 375 -12539 -29621 29956 13279 1
378 376 -12539 -29621 29956 13279 1
379 377 -11793 -29956 30273 12539 1
380 378 -11039 -29956 30571 12539 1
381 379 -11039 -30273 30571 11793 1
382 380 -10278 -30571 30852 11039 1
383 381 -9512 -30571 31113 11039 1
384 382 -9512 -30852 31113 10278 1
385 383 -8739 -31113 31356 9512 1
386 384 -7962 -31113 31580 9512 1
387 385 -7962 -31356 31580 8739 1
388 386 -7179 -31580 31785 7962 1
389 387 -6393 -31580 31971 7962 1
390 388 -6393 -31785 31971 7179 1
391 389 -5602 -31971 32137 6393 1
392 390 -5602 -31971 32137 6393 1
393 391 -4808 -32137 32285 5602 1
394 392 -4011 -32137 32412 5602 1
395 393 -4011 -32285 32412 4808 1
396 394 -3212 -32412 32521 4011 1
397 395 -2410 -32412 32609 4011 1
398 396 -2410 -32521 32609 3212 1
399 397 -1608 -32609 32678 2410 1
400 398 -804 -32609 32728 2410 1
401 399 -804 -32678 32728 1608 1
402 400 0 -32728 32757 804 1
403 401 0 -32728 32757 804 1
404 402 0 -32757 32757 0 1
405 403 804 -32757 32728 0 1
406 404 804 0 32728 32757 1
407 405 1608 804 32678 32728 1
408 406 2410 804 32609 32728 1
409 407 2410 1608 32609 32678 1
410 408 3212 2410 32521 32609 1
411 409 4011 2410 32412 32609 1
412 410 4011 3212 32412 32521 1
413 411 4808 4011 32285 32412 1
414 412 5602 4011 32137 32412 1
415 413 5602 4808 32137 32285 1
416 414 6393 5602 31971 32137 1
417 415 6393 5602 31971 32137 1
418 416 7179 6393 31785 31971 1
419 417 7962 6393 31580 31971 1
420 418 7962 7179 31580 31785 1
421 419 8739 7962 31356 31580 1
422 420 9512 7962 31113 31580 1
423 421 9512 8739 31113 31356 1
424 422 10278 9512 30852 31113 1
425 423 11039 9512 30571 31113 1
426 424 11039 10278 30571 30852 1
427 425 11793 11039 30273 30571 1
428 426 11793 11039 30273 30571 1
429 427 12539 11793 29956 30273 1
430 428 13279 11793 29621 30273 1
431 429 13279 12539 29621 29956 1
432 430 14010 13279 29268 29621 1
433 431 14732 13279 28898 29621 1
434 432 14732 14010 28898 29268 1
435 433 15446 14732 28510 28898 1
436 434 16151 14732 28105 28898 1
437 435 16151 15446 28105 28510 1
438 436 16846 16151 27683 28105 1
439 437 17530 16151 27245 28105 1
440 438 17530 16846 27245 27683 1
441 439 18204 17530 26790 27245 1
442 440 18204 17530 26790 27245 1
443 441 18868 18204 26319 26790 1
444 442 19519 18204 25832 26790 1
445 443 19519 18868 25832 26319 1
446 444 20159 19519 25329 25832 1
447 445 20787 19519 24811 25832 1
448 446 20787 20159 24811 25329 1
449 447 21403 20787 24279 24811 1
450 448 22005 20787 23731 24811 1
451 449 22005 21403 23731 24279 1
452 450 22594 22005 23170 23731 1
453 451 22594 22005 23170 23731 1
454 452 23170 22594 22594 23170 1
455 453 23731 22594 22005 23170 1
456 454 23731 23170 22005 22594 1
457 455 24279 23731 21403 22005 1
458 456 24811 23731 20787 22005 1
459 457 24811 24279 20787 21403 1
460 458 25329 24811 20159 20787 1
461 459 25832 24811 19519 20787 1
462 460 25832 25329 19519 20159 1
463 461 26319 25832 18868 19519 1
464 462 26790 25832 18204 19519 1
465 463 26790 26319 18204 18868 1
466 464 27245 26790 17530 18204 1
467 465 27245 26790 17530 18204 1
468 466 27683 27245 16846 17530 1
469 467 28105 27245 16151 17530 1
470 468 28105 27683 16151 16846 1
471 469 28510 28105 15446 16151 1
472 470 28898 28105 14732 16151 1
473 471 28898 28510 14732 15446 1
474 472 29268 28898 14010 14732 1
475 473 29621 28898 13279 14732 1
476 474 29621 29268 13279 14010 1
477 475 29956 29621 12539 13279 1
478 476 29956 29621 12539 13279 1
479 477 30273 29956 11793 12539 1
480 478 30571 29956 11039 12539 1
481 479 30571 30273 11039 11793 1
482 480 30852 30571 10278 11039 1
483 481 31113 30571 9512 11039 1
484 482 31113 30852 9512 10278 1
485 483 31356 31113 8739 9512 1
486 484 31580 31113 7962 9512 1
487 485 31580 31356 7962 8739 1
488 486 31785 31580 7179 7962 1
489 487 31971 31580 6393 7962 1
490 488 31971 31785 6393 7179 1
491 489 32137 31971 5602 6393 1
492 490 32137 31971 5602 6393 1
493 491 32285 32137 4808 5602 1
494 492 32412 32137 4011 5602 1
495 493 32412 32285 4011 4808 1
496 494 32521 32412 3212 4011 1
497 495 32609 32412 2410 4011 1
498 496 32609 32521 2410 3212 1
499 497 32678 32609 1608 2410 1
500 498 32728 32609 804 2410 1
501 499 32728 32678 804 1608 1
+190 -190
View File
@@ -1,201 +1,201 @@
sample,sin_out,cos_out sample,sin_out,cos_out
0,22594,23170 0,22005,23731
1,26319,18868 1,22594,23170
2,28898,14732 2,22594,23170
3,31113,9512 3,26319,18868
4,32285,4808 4,28898,14732
5,32757,0 5,31113,9512
6,4808,-32285 6,32285,4808
7,9512,-31113 7,32757,0
8,14732,-28898 8,32285,-4808
9,18868,-26319 9,31113,-9512
10,22594,-23170 10,28898,-14732
11,26319,-18868 11,26319,-18868
12,28898,-14732 12,23170,-22594
13,31113,-9512 13,18868,-26319
14,32285,-4808 14,14732,-28898
15,32757,0 15,9512,-31113
16,-32285,-4808 16,4808,-32285
17,-31113,-9512 17,0,-32757
18,-28898,-14732 18,-32285,-4808
19,-26319,-18868 19,-31113,-9512
20,-23170,-22594 20,-28898,-14732
21,-18868,-26319 21,-26319,-18868
22,-14732,-28898 22,-23170,-22594
23,-9512,-31113 23,-18868,-26319
24,-4808,-32285 24,-14732,-28898
25,0,-32757 25,-9512,-31113
26,-32285,4808 26,-4808,-32285
27,-31113,9512 27,0,-32757
28,-28898,14732 28,-4808,32285
29,-26319,18868 29,-9512,31113
30,-23170,22594 30,-14732,28898
31,-18868,26319 31,-18868,26319
32,-14732,28898 32,-22594,23170
33,-9512,31113 33,-26319,18868
34,-4808,32285 34,-28898,14732
35,0,32757 35,-31113,9512
36,4808,32285 36,-32285,4808
37,9512,31113 37,-32757,0
38,14732,28898 38,4808,32285
39,18868,26319 39,9512,31113
40,22594,23170 40,14732,28898
41,26319,18868 41,18868,26319
42,28898,14732 42,22594,23170
43,31113,9512 43,26319,18868
44,32285,4808 44,28898,14732
45,32757,0 45,31113,9512
46,4808,-32285 46,32285,4808
47,9512,-31113 47,32757,0
48,14732,-28898 48,32285,-4808
49,18868,-26319 49,31113,-9512
50,22594,-23170 50,28898,-14732
51,26319,-18868 51,26319,-18868
52,28898,-14732 52,23170,-22594
53,31113,-9512 53,18868,-26319
54,32285,-4808 54,14732,-28898
55,32757,0 55,9512,-31113
56,-32285,-4808 56,4808,-32285
57,-31113,-9512 57,0,-32757
58,-28898,-14732 58,-32285,-4808
59,-26319,-18868 59,-31113,-9512
60,-23170,-22594 60,-28898,-14732
61,-18868,-26319 61,-26319,-18868
62,-14732,-28898 62,-23170,-22594
63,-9512,-31113 63,-18868,-26319
64,-4808,-32285 64,-14732,-28898
65,0,-32757 65,-9512,-31113
66,-32285,4808 66,-4808,-32285
67,-31113,9512 67,0,-32757
68,-28898,14732 68,-4808,32285
69,-26319,18868 69,-9512,31113
70,-23170,22594 70,-14732,28898
71,-18868,26319 71,-18868,26319
72,-14732,28898 72,-22594,23170
73,-9512,31113 73,-26319,18868
74,-4808,32285 74,-28898,14732
75,0,32757 75,-31113,9512
76,4808,32285 76,-32285,4808
77,9512,31113 77,-32757,0
78,14732,28898 78,4808,32285
79,18868,26319 79,9512,31113
80,22594,23170 80,14732,28898
81,26319,18868 81,18868,26319
82,28898,14732 82,22594,23170
83,31113,9512 83,26319,18868
84,32285,4808 84,28898,14732
85,32757,0 85,31113,9512
86,4808,-32285 86,32285,4808
87,9512,-31113 87,32757,0
88,14732,-28898 88,32285,-4808
89,18868,-26319 89,31113,-9512
90,22594,-23170 90,28898,-14732
91,26319,-18868 91,26319,-18868
92,28898,-14732 92,23170,-22594
93,31113,-9512 93,18868,-26319
94,32285,-4808 94,14732,-28898
95,32757,0 95,9512,-31113
96,-32285,-4808 96,4808,-32285
97,-31113,-9512 97,0,-32757
98,-28898,-14732 98,-32285,-4808
99,-26319,-18868 99,-31113,-9512
100,-23170,-22594 100,-28898,-14732
101,-18868,-26319 101,-26319,-18868
102,-14732,-28898 102,-23170,-22594
103,-9512,-31113 103,-18868,-26319
104,-4808,-32285 104,-14732,-28898
105,0,-32757 105,-9512,-31113
106,-32285,4808 106,-4808,-32285
107,-31113,9512 107,0,-32757
108,-28898,14732 108,-4808,32285
109,-26319,18868 109,-9512,31113
110,-23170,22594 110,-14732,28898
111,-18868,26319 111,-18868,26319
112,-14732,28898 112,-22594,23170
113,-9512,31113 113,-26319,18868
114,-4808,32285 114,-28898,14732
115,0,32757 115,-31113,9512
116,4808,32285 116,-32285,4808
117,9512,31113 117,-32757,0
118,14732,28898 118,4808,32285
119,18868,26319 119,9512,31113
120,22594,23170 120,14732,28898
121,26319,18868 121,18868,26319
122,28898,14732 122,22594,23170
123,31113,9512 123,26319,18868
124,32285,4808 124,28898,14732
125,32757,0 125,31113,9512
126,4808,-32285 126,32285,4808
127,9512,-31113 127,32757,0
128,14732,-28898 128,32285,-4808
129,18868,-26319 129,31113,-9512
130,22594,-23170 130,28898,-14732
131,26319,-18868 131,26319,-18868
132,28898,-14732 132,23170,-22594
133,31113,-9512 133,18868,-26319
134,32285,-4808 134,14732,-28898
135,32757,0 135,9512,-31113
136,-32285,-4808 136,4808,-32285
137,-31113,-9512 137,0,-32757
138,-28898,-14732 138,-32285,-4808
139,-26319,-18868 139,-31113,-9512
140,-23170,-22594 140,-28898,-14732
141,-18868,-26319 141,-26319,-18868
142,-14732,-28898 142,-23170,-22594
143,-9512,-31113 143,-18868,-26319
144,-4808,-32285 144,-14732,-28898
145,0,-32757 145,-9512,-31113
146,-32285,4808 146,-4808,-32285
147,-31113,9512 147,0,-32757
148,-28898,14732 148,-4808,32285
149,-26319,18868 149,-9512,31113
150,-23170,22594 150,-14732,28898
151,-18868,26319 151,-18868,26319
152,-14732,28898 152,-22594,23170
153,-9512,31113 153,-26319,18868
154,-4808,32285 154,-28898,14732
155,0,32757 155,-31113,9512
156,4808,32285 156,-32285,4808
157,9512,31113 157,-32757,0
158,14732,28898 158,4808,32285
159,18868,26319 159,9512,31113
160,22594,23170 160,14732,28898
161,26319,18868 161,18868,26319
162,28898,14732 162,22594,23170
163,31113,9512 163,26319,18868
164,32285,4808 164,28898,14732
165,32757,0 165,31113,9512
166,4808,-32285 166,32285,4808
167,9512,-31113 167,32757,0
168,14732,-28898 168,32285,-4808
169,18868,-26319 169,31113,-9512
170,22594,-23170 170,28898,-14732
171,26319,-18868 171,26319,-18868
172,28898,-14732 172,23170,-22594
173,31113,-9512 173,18868,-26319
174,32285,-4808 174,14732,-28898
175,32757,0 175,9512,-31113
176,-32285,-4808 176,4808,-32285
177,-31113,-9512 177,0,-32757
178,-28898,-14732 178,-32285,-4808
179,-26319,-18868 179,-31113,-9512
180,-23170,-22594 180,-28898,-14732
181,-18868,-26319 181,-26319,-18868
182,-14732,-28898 182,-23170,-22594
183,-9512,-31113 183,-18868,-26319
184,-4808,-32285 184,-14732,-28898
185,0,-32757 185,-9512,-31113
186,-32285,4808 186,-4808,-32285
187,-31113,9512 187,0,-32757
188,-28898,14732 188,-4808,32285
189,-26319,18868 189,-9512,31113
190,-23170,22594 190,-14732,28898
191,-18868,26319 191,-18868,26319
192,-14732,28898 192,-22594,23170
193,-9512,31113 193,-26319,18868
194,-4808,32285 194,-28898,14732
195,0,32757 195,-31113,9512
196,4808,32285 196,-32285,4808
197,9512,31113 197,-32757,0
198,14732,28898 198,4808,32285
199,18868,26319 199,9512,31113
1 sample sin_out cos_out
2 0 22594 22005 23170 23731
3 1 26319 22594 18868 23170
4 2 28898 22594 14732 23170
5 3 31113 26319 9512 18868
6 4 32285 28898 4808 14732
7 5 32757 31113 0 9512
8 6 4808 32285 -32285 4808
9 7 9512 32757 -31113 0
10 8 14732 32285 -28898 -4808
11 9 18868 31113 -26319 -9512
12 10 22594 28898 -23170 -14732
13 11 26319 -18868
14 12 28898 23170 -14732 -22594
15 13 31113 18868 -9512 -26319
16 14 32285 14732 -4808 -28898
17 15 32757 9512 0 -31113
18 16 -32285 4808 -4808 -32285
19 17 -31113 0 -9512 -32757
20 18 -28898 -32285 -14732 -4808
21 19 -26319 -31113 -18868 -9512
22 20 -23170 -28898 -22594 -14732
23 21 -18868 -26319 -26319 -18868
24 22 -14732 -23170 -28898 -22594
25 23 -9512 -18868 -31113 -26319
26 24 -4808 -14732 -32285 -28898
27 25 0 -9512 -32757 -31113
28 26 -32285 -4808 4808 -32285
29 27 -31113 0 9512 -32757
30 28 -28898 -4808 14732 32285
31 29 -26319 -9512 18868 31113
32 30 -23170 -14732 22594 28898
33 31 -18868 26319
34 32 -14732 -22594 28898 23170
35 33 -9512 -26319 31113 18868
36 34 -4808 -28898 32285 14732
37 35 0 -31113 32757 9512
38 36 4808 -32285 32285 4808
39 37 9512 -32757 31113 0
40 38 14732 4808 28898 32285
41 39 18868 9512 26319 31113
42 40 22594 14732 23170 28898
43 41 26319 18868 18868 26319
44 42 28898 22594 14732 23170
45 43 31113 26319 9512 18868
46 44 32285 28898 4808 14732
47 45 32757 31113 0 9512
48 46 4808 32285 -32285 4808
49 47 9512 32757 -31113 0
50 48 14732 32285 -28898 -4808
51 49 18868 31113 -26319 -9512
52 50 22594 28898 -23170 -14732
53 51 26319 -18868
54 52 28898 23170 -14732 -22594
55 53 31113 18868 -9512 -26319
56 54 32285 14732 -4808 -28898
57 55 32757 9512 0 -31113
58 56 -32285 4808 -4808 -32285
59 57 -31113 0 -9512 -32757
60 58 -28898 -32285 -14732 -4808
61 59 -26319 -31113 -18868 -9512
62 60 -23170 -28898 -22594 -14732
63 61 -18868 -26319 -26319 -18868
64 62 -14732 -23170 -28898 -22594
65 63 -9512 -18868 -31113 -26319
66 64 -4808 -14732 -32285 -28898
67 65 0 -9512 -32757 -31113
68 66 -32285 -4808 4808 -32285
69 67 -31113 0 9512 -32757
70 68 -28898 -4808 14732 32285
71 69 -26319 -9512 18868 31113
72 70 -23170 -14732 22594 28898
73 71 -18868 26319
74 72 -14732 -22594 28898 23170
75 73 -9512 -26319 31113 18868
76 74 -4808 -28898 32285 14732
77 75 0 -31113 32757 9512
78 76 4808 -32285 32285 4808
79 77 9512 -32757 31113 0
80 78 14732 4808 28898 32285
81 79 18868 9512 26319 31113
82 80 22594 14732 23170 28898
83 81 26319 18868 18868 26319
84 82 28898 22594 14732 23170
85 83 31113 26319 9512 18868
86 84 32285 28898 4808 14732
87 85 32757 31113 0 9512
88 86 4808 32285 -32285 4808
89 87 9512 32757 -31113 0
90 88 14732 32285 -28898 -4808
91 89 18868 31113 -26319 -9512
92 90 22594 28898 -23170 -14732
93 91 26319 -18868
94 92 28898 23170 -14732 -22594
95 93 31113 18868 -9512 -26319
96 94 32285 14732 -4808 -28898
97 95 32757 9512 0 -31113
98 96 -32285 4808 -4808 -32285
99 97 -31113 0 -9512 -32757
100 98 -28898 -32285 -14732 -4808
101 99 -26319 -31113 -18868 -9512
102 100 -23170 -28898 -22594 -14732
103 101 -18868 -26319 -26319 -18868
104 102 -14732 -23170 -28898 -22594
105 103 -9512 -18868 -31113 -26319
106 104 -4808 -14732 -32285 -28898
107 105 0 -9512 -32757 -31113
108 106 -32285 -4808 4808 -32285
109 107 -31113 0 9512 -32757
110 108 -28898 -4808 14732 32285
111 109 -26319 -9512 18868 31113
112 110 -23170 -14732 22594 28898
113 111 -18868 26319
114 112 -14732 -22594 28898 23170
115 113 -9512 -26319 31113 18868
116 114 -4808 -28898 32285 14732
117 115 0 -31113 32757 9512
118 116 4808 -32285 32285 4808
119 117 9512 -32757 31113 0
120 118 14732 4808 28898 32285
121 119 18868 9512 26319 31113
122 120 22594 14732 23170 28898
123 121 26319 18868 18868 26319
124 122 28898 22594 14732 23170
125 123 31113 26319 9512 18868
126 124 32285 28898 4808 14732
127 125 32757 31113 0 9512
128 126 4808 32285 -32285 4808
129 127 9512 32757 -31113 0
130 128 14732 32285 -28898 -4808
131 129 18868 31113 -26319 -9512
132 130 22594 28898 -23170 -14732
133 131 26319 -18868
134 132 28898 23170 -14732 -22594
135 133 31113 18868 -9512 -26319
136 134 32285 14732 -4808 -28898
137 135 32757 9512 0 -31113
138 136 -32285 4808 -4808 -32285
139 137 -31113 0 -9512 -32757
140 138 -28898 -32285 -14732 -4808
141 139 -26319 -31113 -18868 -9512
142 140 -23170 -28898 -22594 -14732
143 141 -18868 -26319 -26319 -18868
144 142 -14732 -23170 -28898 -22594
145 143 -9512 -18868 -31113 -26319
146 144 -4808 -14732 -32285 -28898
147 145 0 -9512 -32757 -31113
148 146 -32285 -4808 4808 -32285
149 147 -31113 0 9512 -32757
150 148 -28898 -4808 14732 32285
151 149 -26319 -9512 18868 31113
152 150 -23170 -14732 22594 28898
153 151 -18868 26319
154 152 -14732 -22594 28898 23170
155 153 -9512 -26319 31113 18868
156 154 -4808 -28898 32285 14732
157 155 0 -31113 32757 9512
158 156 4808 -32285 32285 4808
159 157 9512 -32757 31113 0
160 158 14732 4808 28898 32285
161 159 18868 9512 26319 31113
162 160 22594 14732 23170 28898
163 161 26319 18868 18868 26319
164 162 28898 22594 14732 23170
165 163 31113 26319 9512 18868
166 164 32285 28898 4808 14732
167 165 32757 31113 0 9512
168 166 4808 32285 -32285 4808
169 167 9512 32757 -31113 0
170 168 14732 32285 -28898 -4808
171 169 18868 31113 -26319 -9512
172 170 22594 28898 -23170 -14732
173 171 26319 -18868
174 172 28898 23170 -14732 -22594
175 173 31113 18868 -9512 -26319
176 174 32285 14732 -4808 -28898
177 175 32757 9512 0 -31113
178 176 -32285 4808 -4808 -32285
179 177 -31113 0 -9512 -32757
180 178 -28898 -32285 -14732 -4808
181 179 -26319 -31113 -18868 -9512
182 180 -23170 -28898 -22594 -14732
183 181 -18868 -26319 -26319 -18868
184 182 -14732 -23170 -28898 -22594
185 183 -9512 -18868 -31113 -26319
186 184 -4808 -14732 -32285 -28898
187 185 0 -9512 -32757 -31113
188 186 -32285 -4808 4808 -32285
189 187 -31113 0 9512 -32757
190 188 -28898 -4808 14732 32285
191 189 -26319 -9512 18868 31113
192 190 -23170 -14732 22594 28898
193 191 -18868 26319
194 192 -14732 -22594 28898 23170
195 193 -9512 -26319 31113 18868
196 194 -4808 -28898 32285 14732
197 195 0 -31113 32757 9512
198 196 4808 -32285 32285 4808
199 197 9512 -32757 31113 0
200 198 14732 4808 28898 32285
201 199 18868 9512 26319 31113
+20 -20
View File
@@ -7,16 +7,16 @@ sample,sin,cos,mag_sq
5,31113,9512,1058496913 5,31113,9512,1058496913
6,32285,4808,1065438089 6,32285,4808,1065438089
7,32757,0,1073021049 7,32757,0,1073021049
8,4808,-32285,1065438089 8,32285,-4808,1065438089
9,9512,-31113,1058496913 9,31113,-9512,1058496913
10,14732,-28898,1052126228 10,28898,-14732,1052126228
11,18868,-26319,1048691185 11,26319,-18868,1048691185
12,22594,-23170,1047337736 12,23170,-22594,1047337736
13,26319,-18868,1048691185 13,18868,-26319,1048691185
14,28898,-14732,1052126228 14,14732,-28898,1052126228
15,31113,-9512,1058496913 15,9512,-31113,1058496913
16,32285,-4808,1065438089 16,4808,-32285,1065438089
17,32757,0,1073021049 17,0,-32757,1073021049
18,-32285,-4808,1065438089 18,-32285,-4808,1065438089
19,-31113,-9512,1058496913 19,-31113,-9512,1058496913
20,-28898,-14732,1052126228 20,-28898,-14732,1052126228
@@ -27,15 +27,15 @@ sample,sin,cos,mag_sq
25,-9512,-31113,1058496913 25,-9512,-31113,1058496913
26,-4808,-32285,1065438089 26,-4808,-32285,1065438089
27,0,-32757,1073021049 27,0,-32757,1073021049
28,-32285,4808,1065438089 28,-4808,32285,1065438089
29,-31113,9512,1058496913 29,-9512,31113,1058496913
30,-28898,14732,1052126228 30,-14732,28898,1052126228
31,-26319,18868,1048691185 31,-18868,26319,1048691185
32,-23170,22594,1047337736 32,-22594,23170,1047337736
33,-18868,26319,1048691185 33,-26319,18868,1048691185
34,-14732,28898,1052126228 34,-28898,14732,1052126228
35,-9512,31113,1058496913 35,-31113,9512,1058496913
36,-4808,32285,1065438089 36,-32285,4808,1065438089
37,0,32757,1073021049 37,-32757,0,1073021049
38,4808,32285,1065438089 38,4808,32285,1065438089
39,9512,31113,1058496913 39,9512,31113,1058496913
1 sample sin cos mag_sq
7 5 31113 9512 1058496913
8 6 32285 4808 1065438089
9 7 32757 0 1073021049
10 8 4808 32285 -32285 -4808 1065438089
11 9 9512 31113 -31113 -9512 1058496913
12 10 14732 28898 -28898 -14732 1052126228
13 11 18868 26319 -26319 -18868 1048691185
14 12 22594 23170 -23170 -22594 1047337736
15 13 26319 18868 -18868 -26319 1048691185
16 14 28898 14732 -14732 -28898 1052126228
17 15 31113 9512 -9512 -31113 1058496913
18 16 32285 4808 -4808 -32285 1065438089
19 17 32757 0 0 -32757 1073021049
20 18 -32285 -4808 1065438089
21 19 -31113 -9512 1058496913
22 20 -28898 -14732 1052126228
27 25 -9512 -31113 1058496913
28 26 -4808 -32285 1065438089
29 27 0 -32757 1073021049
30 28 -32285 -4808 4808 32285 1065438089
31 29 -31113 -9512 9512 31113 1058496913
32 30 -28898 -14732 14732 28898 1052126228
33 31 -26319 -18868 18868 26319 1048691185
34 32 -23170 -22594 22594 23170 1047337736
35 33 -18868 -26319 26319 18868 1048691185
36 34 -14732 -28898 28898 14732 1052126228
37 35 -9512 -31113 31113 9512 1058496913
38 36 -4808 -32285 32285 4808 1065438089
39 37 0 -32757 32757 0 1073021049
40 38 4808 32285 1065438089
41 39 9512 31113 1058496913
+6 -6
View File
@@ -259,16 +259,16 @@ module tb_nco_400m;
#1; #1;
sin_before_gate = sin_out; sin_before_gate = sin_out;
// Deassert phase_valid // Deassert phase_valid with 4-stage pipeline, dds_ready has 5-cycle latency
phase_valid = 0; phase_valid = 0;
@(posedge clk_400m); #1; repeat (6) @(posedge clk_400m); #1;
check(dds_ready === 1'b0, "dds_ready deasserts when phase_valid=0"); check(dds_ready === 1'b0, "dds_ready deasserts when phase_valid=0");
repeat (10) @(posedge clk_400m); repeat (10) @(posedge clk_400m);
// Re-enable // Re-enable wait for pipeline to refill (5 cycles)
phase_valid = 1; phase_valid = 1;
@(posedge clk_400m); #1; repeat (6) @(posedge clk_400m); #1;
check(dds_ready === 1'b1, "dds_ready re-asserts when phase_valid=1"); check(dds_ready === 1'b1, "dds_ready re-asserts when phase_valid=1");
// //
@@ -285,8 +285,8 @@ module tb_nco_400m;
frequency_tuning_word = FTW_10MHZ; frequency_tuning_word = FTW_10MHZ;
phase_valid = 1; phase_valid = 1;
// Skip pipeline warmup // Skip pipeline warmup (4-stage pipeline + 1 for dds_ready)
repeat (3) @(posedge clk_400m); repeat (5) @(posedge clk_400m);
mag_sq_min = 32'hFFFFFFFF; mag_sq_min = 32'hFFFFFFFF;
mag_sq_max = 32'h00000000; mag_sq_max = 32'h00000000;
+3 -3
View File
@@ -63,9 +63,9 @@ reg ft601_data_oe; // Output enable for bidirectional data bus
// Even though both are 100 MHz, they are asynchronous clocks and need synchronization. // Even though both are 100 MHz, they are asynchronous clocks and need synchronization.
// 2-stage synchronizers for valid signals // 2-stage synchronizers for valid signals
reg [1:0] range_valid_sync; (* ASYNC_REG = "TRUE" *) reg [1:0] range_valid_sync;
reg [1:0] doppler_valid_sync; (* ASYNC_REG = "TRUE" *) reg [1:0] doppler_valid_sync;
reg [1:0] cfar_valid_sync; (* ASYNC_REG = "TRUE" *) reg [1:0] cfar_valid_sync;
// Synchronized data captures (registered in ft601_clk_in domain) // Synchronized data captures (registered in ft601_clk_in domain)
reg [31:0] range_profile_cap; reg [31:0] range_profile_cap;