adc/dac- fifo constraints

main
Rejeesh Kutty 2016-08-11 09:58:36 -04:00
parent 829e4155ca
commit bb9cb86f34
3 changed files with 18 additions and 11 deletions

View File

@ -1,6 +1,8 @@
set_clock_groups -asynchronous -group [get_clocks -of_objects [get_ports adc_clk]]
set_clock_groups -asynchronous -group [get_clocks -of_objects [get_ports dma_clk]]
set_property shreg_extract no [get_cells -hier -filter {name =~ *adc_xfer_req_m*}]
set_property shreg_extract no [get_cells -hier -filter {name =~ *dma_waddr_rel_t*}]
set_false_path -from [get_cells -hier -filter {name =~ *adc_waddr_rel_t_reg* && IS_SEQUENTIAL}] -to [get_cells -hier -filter {name =~ *dma_waddr_rel_t_m_reg[0]* && IS_SEQUENTIAL}]
set_false_path -from [get_cells -hier -filter {name =~ *adc_waddr_rel_reg* && IS_SEQUENTIAL}] -to [get_cells -hier -filter {name =~ *dma_waddr_rel_reg* && IS_SEQUENTIAL}]
set_false_path -to [get_cells -hier -filter {name =~ *adc_xfer_req_m_reg[0]* && IS_SEQUENTIAL}]

View File

@ -91,8 +91,8 @@ module util_dacfifo (
reg [(ADDRESS_WIDTH-1):0] dma_waddr = 'b0;
reg [(ADDRESS_WIDTH-1):0] dma_lastaddr = 'b0;
reg [(ADDRESS_WIDTH-1):0] dma_lastaddr_d = 'b0;
reg [(ADDRESS_WIDTH-1):0] dma_lastaddr_2d = 'b0;
reg [(ADDRESS_WIDTH-1):0] dac_lastaddr_d = 'b0;
reg [(ADDRESS_WIDTH-1):0] dac_lastaddr_2d = 'b0;
reg dma_xfer_req_ff = 1'b0;
reg dma_ready_d = 1'b0;
@ -140,8 +140,8 @@ module util_dacfifo (
// sync lastaddr to dac clock domain
always @(posedge dac_clk) begin
dma_lastaddr_d <= dma_lastaddr;
dma_lastaddr_2d <= dma_lastaddr_d;
dac_lastaddr_d <= dma_lastaddr;
dac_lastaddr_2d <= dac_lastaddr_d;
dac_xfer_out_m <= {dac_xfer_out_m[1:0], dma_xfer_out};
end
@ -151,10 +151,10 @@ module util_dacfifo (
always @(posedge dac_clk) begin
if(dac_valid == 1'b1) begin
if (dma_lastaddr_2d == 'h0) begin
if (dac_lastaddr_2d == 'h0) begin
dac_raddr <= dac_raddr + 1;
end else begin
dac_raddr <= (dac_raddr < dma_lastaddr_2d) ? (dac_raddr + 1) : 'b0;
dac_raddr <= (dac_raddr < dac_lastaddr_2d) ? (dac_raddr + 1) : 'b0;
end
end
end

View File

@ -1,2 +1,7 @@
set_false_path -from [get_cells *dma_lastaddr_reg* -hierarchical -filter {PRIMITIVE_SUBGROUP == flop}] \
-to [get_cells *dma_lastaddr_d_reg* -hierarchical -filter {PRIMITIVE_SUBGROUP == flop}]
set_property shreg_extract no [get_cells -hier -filter {name =~ *dac_lastaddr_d*}]
set_property shreg_extract no [get_cells -hier -filter {name =~ *dac_xfer_out_m*}]
set_false_path -from [get_cells -hier -filter {name =~ *dma_lastaddr_reg* && IS_SEQUENTIAL}] -to [get_cells -hier -filter {name =~ *dac_lastaddr_d_reg* && IS_SEQUENTIAL}]
set_false_path -to [get_cells -hier -filter {name =~ *dac_xfer_out_m_reg[0]* && IS_SEQUENTIAL}]