8000 axi_dac_interpolate: oversampling optimization · analogdevicesinc/hdl@4972e5c · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 4972e5c

Browse files
committed
axi_dac_interpolate: oversampling optimization
Optimize the oversampling mechanism. The behavior of the axi_dac_interpolate was changing if a debug module was added to the core. The current code has a better utilization and reliability.
1 parent d39ed3d commit 4972e5c

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

library/axi_dac_interpolate/axi_dac_interpolate_filter.v

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,23 +133,19 @@ module axi_dac_interpolate_filter #(
133133
// paths randomly ready, only when using data buffers
134134

135135
always @(posedge dac_clk) begin
136-
if (interpolation_ratio == 0) begin
137-
dac_int_ready <= dac_filt_int_valid;
138-
end else begin
139-
if (dac_filt_int_valid &
140-
(!start_sync_channels & dma_valid |
141-
(dma_valid & dma_valid_adjacent))) begin
142-
if (interpolation_counter < interpolation_ratio) begin
143-
interpolation_counter <= interpolation_counter + 1;
144-
dac_int_ready <= 1'b0;
145-
end else begin
146-
interpolation_counter <= 0;
147-
dac_int_ready <= 1'b1;
148-
end
136+
if (dac_filt_int_valid &
137+
(!start_sync_channels & dma_valid |
138+
(dma_valid & dma_valid_adjacent))) begin
139+
if (interpolation_counter == interpolation_ratio) begin
140+
interpolation_counter <= 0;
141+
dac_int_ready <= 1'b1;
149142
end else begin
143+
interpolation_counter <= interpolation_counter + 1;
150144
dac_int_ready <= 1'b0;
151-
interpolation_counter <= 0;
152145
end
146+
end else begin
147+
dac_int_ready <= 1'b0;
148+
interpolation_counter <= 0;
153149
end
154150
end
155151

0 commit comments

Comments
 (0)
0