axi_ad9963: Remove extra pipeline stages on register read path
The register read logic is not that complicated that it needs two extra pipeline stages. It can easily be condensed into a single combinatorial and still meet timing with large margins. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>main
parent
64dfa0432d
commit
3e0b337eae
|
@ -168,16 +168,10 @@ module axi_ad9963 #(
|
|||
|
||||
// processor read interface
|
||||
|
||||
always @(negedge up_rstn or posedge up_clk) begin
|
||||
if (up_rstn == 0) begin
|
||||
up_wack <= 'd0;
|
||||
up_rack <= 'd0;
|
||||
up_rdata <= 'd0;
|
||||
end else begin
|
||||
up_wack <= up_wack_rx_s | up_wack_tx_s ;
|
||||
up_rack <= up_rack_rx_s | up_rack_tx_s ;
|
||||
up_rdata <= up_rdata_rx_s | up_rdata_tx_s ;
|
||||
end
|
||||
always @(*) begin
|
||||
up_wack <= up_wack_rx_s | up_wack_tx_s;
|
||||
up_rack <= up_rack_rx_s | up_rack_tx_s;
|
||||
up_rdata <= up_rdata_rx_s | up_rdata_tx_s;
|
||||
end
|
||||
|
||||
// device interface
|
||||
|
|
|
@ -109,19 +109,19 @@ module axi_ad9963_rx #(
|
|||
up_status_pn_err <= 'd0;
|
||||
up_status_pn_oos <= 'd0;
|
||||
up_status_or <= 'd0;
|
||||
up_rdata <= 'd0;
|
||||
up_rack <= 'd0;
|
||||
up_wack <= 'd0;
|
||||
end else begin
|
||||
up_status_pn_err <= | up_adc_pn_err_s;
|
||||
up_status_pn_oos <= | up_adc_pn_oos_s;
|
||||
up_status_or <= | up_adc_or_s;
|
||||
up_rdata <= up_rdata_s[0] | up_rdata_s[1] | up_rdata_s[2] | up_rdata_s[3];
|
||||
up_rack <= up_rack_s[0] | up_rack_s[1] | up_rack_s[2] | up_rack_s[3];
|
||||
up_wack <= up_wack_s[0] | up_wack_s[1] | up_wack_s[2] | up_wack_s[3];
|
||||
end
|
||||
end
|
||||
|
||||
always @(*) begin
|
||||
up_rdata <= up_rdata_s[0] | up_rdata_s[1] | up_rdata_s[2] | up_rdata_s[3];
|
||||
up_rack <= up_rack_s[0] | up_rack_s[1] | up_rack_s[2] | up_rack_s[3];
|
||||
up_wack <= up_wack_s[0] | up_wack_s[1] | up_wack_s[2] | up_wack_s[3];
|
||||
end
|
||||
|
||||
// channel 0 (i)
|
||||
|
||||
axi_ad9963_rx_channel #(
|
||||
|
|
|
@ -136,16 +136,10 @@ module axi_ad9963_tx #(
|
|||
|
||||
// processor read interface
|
||||
|
||||
always @(negedge up_rstn or posedge up_clk) begin
|
||||
if (up_rstn == 0) begin
|
||||
up_rdata <= 'd0;
|
||||
up_rack <= 'd0;
|
||||
up_wack <= 'd0;
|
||||
end else begin
|
||||
up_rdata <= up_rdata_s[0] | up_rdata_s[1] | up_rdata_s[2] | up_rdata_s[3];
|
||||
up_rack <= up_rack_s[0] | up_rack_s[1] | up_rack_s[2] | up_rack_s[3];
|
||||
up_wack <= up_wack_s[0] | up_wack_s[1] | up_wack_s[2] | up_wack_s[3];
|
||||
end
|
||||
always @(*) begin
|
||||
up_rdata <= up_rdata_s[0] | up_rdata_s[1] | up_rdata_s[2] | up_rdata_s[3];
|
||||
up_rack <= up_rack_s[0] | up_rack_s[1] | up_rack_s[2] | up_rack_s[3];
|
||||
up_wack <= up_wack_s[0] | up_wack_s[1] | up_wack_s[2] | up_wack_s[3];
|
||||
end
|
||||
|
||||
// dac channel
|
||||
|
|
Loading…
Reference in New Issue