⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data_path.v

📁 XILINX memory interface generator. XILINX的外部存储器接口。
💻 V
📖 第 1 页 / 共 2 页
字号:
always @ (posedge clk90)           
begin                     
    if (reset90_r == 1'b1)
      fifo_13_wr_addr <= 4'h0;
    else if (transfer_done_13 == 1'b1) 
      fifo_13_wr_addr <= fifo_13_wr_addr + 1'b1;
end

// Read Address incrementation for the read FIFO and Single data rate data sequencing
                      
always @ (posedge clk90)           
begin                     
    if (reset90_r == 1'b1)
      begin
        next_state       <= 1'b0;
        fifo_00_rd_addr  <= 4'h0;
        fifo_02_rd_addr  <= 4'h0;
        user_output_data <= 72'h000000000000000000; 
      end
    else
     case (next_state)      
         1'b0: begin
                if (read_valid_data_1 == 1'b1)
                 begin 
                  next_state <= 1'b1;
                  fifo_00_rd_addr <= fifo_00_rd_addr + 1'b1;
                  user_output_data <= {fifo_10_data_out,fifo_00_data_out,fifo_11_data_out,fifo_01_data_out};
                 end
                else
                  next_state <= 1'b0;
               end
         1'b1: begin
                if (read_valid_data_2 == 1'b1)
                 begin
                  next_state      <= 1'b0;
                  fifo_02_rd_addr <= fifo_02_rd_addr + 1'b1;
                  user_output_data <= {fifo_12_data_out,fifo_02_data_out,fifo_13_data_out,fifo_03_data_out};
                 end
                else
                  next_state <= 1'b1;
               end
         default: begin 
                   next_state <= 1'b0;
                   fifo_00_rd_addr <= 4'h0;
                   fifo_02_rd_addr <= 4'h0;
                   user_output_data <= 72'h000000000000000000;
                  end
     endcase                                             
end                                                

always @ (posedge clk90)           
begin                     
    if (reset90_r == 1'b1)
     begin                                 
      fifo_11_not_empty_r   <= 1'b0;
      fifo_13_not_empty_r   <= 1'b0;
      rd_data_valid         <= 1'b0;
     end                            
    else
     begin                                                   
      fifo_11_not_empty_r   <= fifo_11_not_empty;
      fifo_13_not_empty_r   <= fifo_13_not_empty;
      rd_data_valid         <= read_valid_data;                
     end                                                
end


/***********************************************************************
// Reset flip-flops
***********************************************************************/

FD rst0_r   ( .Q(reset_r),    .C(clk),    .D(reset) );           
FD rst90_r  ( .Q(reset90_r),  .C(clk90),  .D(reset90) );                 
FD rst180_r ( .Q(reset180_r), .C(clk180), .D(reset180) );                                            
FD rst270_r ( .Q(reset270_r), .C(clk270), .D(reset270) );

//***********************************************************************
// Read Data Capture Module Instantiations
//***********************************************************************
// CQ IOB instantiations
//***********************************************************************

v2p_qdr2_input_buffer  v2p_qdr2_input_buffer0 ( .qdr2_in(qdr2_cq[0]), .read_data_in(cq_int_delay_in0));
v2p_qdr2_input_buffer  v2p_qdr2_input_buffer1 ( .qdr2_in(qdr2_cq[1]), .read_data_in(cq_int_delay_in1));

//**************************************************************************************************
// CQ Internal Delay Circuit implemented in LUTs
//**************************************************************************************************
              
cq_delay  cq_delay0_col0 ( .clk_in(cq_int_delay_in0), .sel_in(delay_sel), .clk_out(cq_delayed_col0[0])); // Internal Clock Delay circuit placed in the first column (for falling edge data) adjacent to IOBs
cq_delay  cq_delay0_col1 ( .clk_in(cq_int_delay_in0), .sel_in(delay_sel), .clk_out(cq_delayed_col1[0])); // Internal Clock Delay circuit placed in the second column (for rising edge data) adjacent to IOBs
cq_delay  cq_delay1_col0 ( .clk_in(cq_int_delay_in1), .sel_in(delay_sel), .clk_out(cq_delayed_col0[1])); // Internal Clock Delay circuit placed in the first column (for falling edge data) adjacent to IOBs                         
cq_delay  cq_delay1_col1 ( .clk_in(cq_int_delay_in1), .sel_in(delay_sel), .clk_out(cq_delayed_col1[1])); // Internal Clock Delay circuit placed in the second column (for rising edge data) adjacent to IOBs

//***************************************************************************************************
// CQ Divide by 2 instantiations
//*************************************************************************************************** 

FD FD_R_n_0 (.Q(rst_cq_div_reg_fd1), .C(cq_delayed_col1[0]), .D(rst_cq_div));

qdr2_cq_div  qdr2_cq_div0 ( .cq(cq_delayed_col0[0]), 
				    .cq1(cq_delayed_col1[0]), 
				    .rst_cq_div(rst_cq_div_reg_fd1), 
				    .cq_tranfert_col1(cq_div_transfert_0_col0), 
				    .cq_tranfert_col0(cq_div_transfert_0_col1));

qdr2_cq_bar_div  qdr2_cq_bar_div0 ( .cq(cq_delayed_col0[1]), 
						.cq1(cq_delayed_col1[1]), 
						.rst_cq_div(rst_cq_div_reg_fd1), 
						.cq_tranfert_col1(cq_div_transfert_1_col0), 
						.cq_tranfert_col0(cq_div_transfert_1_col1));

//****************************************************************************************************************
// Transfer done instantiations (One instantiation per strobe)
//****************************************************************************************************************         
 
qdr2_transfer_done  qdr2_transfer_done0 ( .clk0(clk), 
							.clk90(clk90), 
							.clk180(clk180), 
							.clk270(clk270), 
							.reset(reset_r), 
							.reset90(reset90_r), 
							.reset180(reset180_r), 
							.reset270(reset270_r), 
							.cq_div(cq_div_transfert_0_col1), 
							.transfer_done0(transfer_done_00), 
							.transfer_done1(transfer_done_01), 
							.transfer_done2(transfer_done_02), 
							.transfer_done3(transfer_done_03));

qdr2_transfer_done  qdr2_transfer_done1 ( .clk0(clk), 
							.clk90(clk90), 
							.clk180(clk180), 
							.clk270(clk270), 
							.reset(reset_r), 
							.reset90(reset90_r), 
							.reset180(reset180_r), 
							.reset270(reset270_r), 
							.cq_div(cq_div_transfert_1_col1), 
							.transfer_done0(transfer_done_10), 
							.transfer_done1(transfer_done_11), 
							.transfer_done2(transfer_done_12), 
							.transfer_done3(transfer_done_13));

//****************************************************************************************************************
// Generation of the synchronous CE for the data capture FD.
//****************************************************************************************************************

FD FD_R_n_0_DC (.Q(CE_R_FB0),   
             .C(cq_delayed_col1[0]),     //changed col0 to col1 
             .D(rst_cq_div)); 
                                         
FD FD_R_n_1_DC (.Q(CE_R_FB1),              
             .C(~cq_delayed_col0[0]),                                   
             .D(CE_R_FB0));                                                                      
                                         
FD FD_R_n_2_DC (.Q(CE_R_FB2),              
             .C(cq_delayed_col1[0]),     //changed col0 to col1                                                            
             .D(CE_R_FB0));                                      
                                                      
FD FD_R_n_3_DC (.Q(CE_R_FB3),              
             .C(~cq_delayed_col0[0]),                                                                          
             .D(CE_R_FB1));  
                    
//******************************************************************************************************************************
// Q Data bits instantiations (36-bits)
//******************************************************************************************************************************            

qdr2_qbit_cq qdr2_qbit_0 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[0] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[0] ),  .fbit_1(fbit_1[0] ),  .fbit_2(fbit_2[0] ),  .fbit_3(fbit_3[0] ));
qdr2_qbit_cq qdr2_qbit_1 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[1] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[1] ),  .fbit_1(fbit_1[1] ),  .fbit_2(fbit_2[1] ),  .fbit_3(fbit_3[1] ));
qdr2_qbit_cq qdr2_qbit_2 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[2] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[2] ),  .fbit_1(fbit_1[2] ),  .fbit_2(fbit_2[2] ),  .fbit_3(fbit_3[2] ));
qdr2_qbit_cq qdr2_qbit_3 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[3] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[3] ),  .fbit_1(fbit_1[3] ),  .fbit_2(fbit_2[3] ),  .fbit_3(fbit_3[3] ));
qdr2_qbit_cq qdr2_qbit_4 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[4] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[4] ),  .fbit_1(fbit_1[4] ),  .fbit_2(fbit_2[4] ),  .fbit_3(fbit_3[4] ));
qdr2_qbit_cq qdr2_qbit_5 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[5] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[5] ),  .fbit_1(fbit_1[5] ),  .fbit_2(fbit_2[5] ),  .fbit_3(fbit_3[5] ));
qdr2_qbit_cq qdr2_qbit_6 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[6] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[6] ),  .fbit_1(fbit_1[6] ),  .fbit_2(fbit_2[6] ),  .fbit_3(fbit_3[6] ));
qdr2_qbit_cq qdr2_qbit_7 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[7] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[7] ),  .fbit_1(fbit_1[7] ),  .fbit_2(fbit_2[7] ),  .fbit_3(fbit_3[7] ));
qdr2_qbit_cq qdr2_qbit_8 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[8] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[8] ),  .fbit_1(fbit_1[8] ),  .fbit_2(fbit_2[8] ),  .fbit_3(fbit_3[8] ));
qdr2_qbit_cq qdr2_qbit_9 ( .reset(reset270_r), .cq(cq_delayed_col0[0]),  .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[9] ), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[9] ),  .fbit_1(fbit_1[9] ),  .fbit_2(fbit_2[9] ),  .fbit_3(fbit_3[9] ));
qdr2_qbit_cq qdr2_qbit_10 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[10]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[10]),  .fbit_1(fbit_1[10]),  .fbit_2(fbit_2[10]),  .fbit_3(fbit_3[10]));
qdr2_qbit_cq qdr2_qbit_11 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[11]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[11]),  .fbit_1(fbit_1[11]),  .fbit_2(fbit_2[11]),  .fbit_3(fbit_3[11]));
qdr2_qbit_cq qdr2_qbit_12 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[12]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[12]),  .fbit_1(fbit_1[12]),  .fbit_2(fbit_2[12]),  .fbit_3(fbit_3[12]));
qdr2_qbit_cq qdr2_qbit_13 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[13]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[13]),  .fbit_1(fbit_1[13]),  .fbit_2(fbit_2[13]),  .fbit_3(fbit_3[13]));
qdr2_qbit_cq qdr2_qbit_14 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[14]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[14]),  .fbit_1(fbit_1[14]),  .fbit_2(fbit_2[14]),  .fbit_3(fbit_3[14]));
qdr2_qbit_cq qdr2_qbit_15 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[15]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[15]),  .fbit_1(fbit_1[15]),  .fbit_2(fbit_2[15]),  .fbit_3(fbit_3[15]));
qdr2_qbit_cq qdr2_qbit_16 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[16]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[16]),  .fbit_1(fbit_1[16]),  .fbit_2(fbit_2[16]),  .fbit_3(fbit_3[16]));
qdr2_qbit_cq qdr2_qbit_17 ( .reset(reset270_r), .cq(cq_delayed_col0[0]), .cq1(cq_delayed_col1[0]), .qdr2_q(qdr2_q[17]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[17]),  .fbit_1(fbit_1[17]),  .fbit_2(fbit_2[17]),  .fbit_3(fbit_3[17]));

qdr2_qbit_cq_bar qdr2_qbit_bar_0  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[18]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[18]), .fbit_1(fbit_1[18]), .fbit_2(fbit_2[18]), .fbit_3(fbit_3[18]));
qdr2_qbit_cq_bar qdr2_qbit_bar_1  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[19]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[19]), .fbit_1(fbit_1[19]), .fbit_2(fbit_2[19]), .fbit_3(fbit_3[19]));
qdr2_qbit_cq_bar qdr2_qbit_bar_2  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[20]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[20]), .fbit_1(fbit_1[20]), .fbit_2(fbit_2[20]), .fbit_3(fbit_3[20]));
qdr2_qbit_cq_bar qdr2_qbit_bar_3  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[21]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[21]), .fbit_1(fbit_1[21]), .fbit_2(fbit_2[21]), .fbit_3(fbit_3[21]));
qdr2_qbit_cq_bar qdr2_qbit_bar_4  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[22]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[22]), .fbit_1(fbit_1[22]), .fbit_2(fbit_2[22]), .fbit_3(fbit_3[22]));
qdr2_qbit_cq_bar qdr2_qbit_bar_5  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[23]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[23]), .fbit_1(fbit_1[23]), .fbit_2(fbit_2[23]), .fbit_3(fbit_3[23]));
qdr2_qbit_cq_bar qdr2_qbit_bar_6  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[24]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[24]), .fbit_1(fbit_1[24]), .fbit_2(fbit_2[24]), .fbit_3(fbit_3[24]));
qdr2_qbit_cq_bar qdr2_qbit_bar_7  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[25]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[25]), .fbit_1(fbit_1[25]), .fbit_2(fbit_2[25]), .fbit_3(fbit_3[25]));
qdr2_qbit_cq_bar qdr2_qbit_bar_8  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[26]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[26]), .fbit_1(fbit_1[26]), .fbit_2(fbit_2[26]), .fbit_3(fbit_3[26]));
qdr2_qbit_cq_bar qdr2_qbit_bar_9  ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[27]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[27]), .fbit_1(fbit_1[27]), .fbit_2(fbit_2[27]), .fbit_3(fbit_3[27]));
qdr2_qbit_cq_bar qdr2_qbit_bar_10 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[28]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[28]), .fbit_1(fbit_1[28]), .fbit_2(fbit_2[28]), .fbit_3(fbit_3[28]));
qdr2_qbit_cq_bar qdr2_qbit_bar_11 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[29]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[29]), .fbit_1(fbit_1[29]), .fbit_2(fbit_2[29]), .fbit_3(fbit_3[29]));
qdr2_qbit_cq_bar qdr2_qbit_bar_12 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[30]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[30]), .fbit_1(fbit_1[30]), .fbit_2(fbit_2[30]), .fbit_3(fbit_3[30]));
qdr2_qbit_cq_bar qdr2_qbit_bar_13 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[31]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[31]), .fbit_1(fbit_1[31]), .fbit_2(fbit_2[31]), .fbit_3(fbit_3[31]));
qdr2_qbit_cq_bar qdr2_qbit_bar_14 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[32]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[32]), .fbit_1(fbit_1[32]), .fbit_2(fbit_2[32]), .fbit_3(fbit_3[32]));
qdr2_qbit_cq_bar qdr2_qbit_bar_15 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[33]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[33]), .fbit_1(fbit_1[33]), .fbit_2(fbit_2[33]), .fbit_3(fbit_3[33]));
qdr2_qbit_cq_bar qdr2_qbit_bar_16 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[34]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[34]), .fbit_1(fbit_1[34]), .fbit_2(fbit_2[34]), .fbit_3(fbit_3[34]));
qdr2_qbit_cq_bar qdr2_qbit_bar_17 ( .reset(reset270_r), .cq(cq_delayed_col0[1]), .cq1(cq_delayed_col1[1]), .qdr2_q(qdr2_q[35]), .CE_R_FB0(CE_R_FB0), .CE_R_FB1(CE_R_FB1), .CE_R_FB2(CE_R_FB2), .CE_R_FB3(CE_R_FB3), .fbit_0(fbit_0[35]), .fbit_1(fbit_1[35]), .fbit_2(fbit_2[35]), .fbit_3(fbit_3[35]));

//*************************************************************************************************************************
// Distributed RAM 18 bits wide FIFO instantiations (4 FIFOs per strobe, 1 for each fbit0 through 3)
//*************************************************************************************************************************
// FIFOs associated with qdr2_cq(0)
RAM_18D  RAM_18D_cq0_fbit0 ( .DPO(fifo_00_data_out),  .A0(fifo_00_wr_addr[0]), .A1(fifo_00_wr_addr[1]), .A2(fifo_00_wr_addr[2]), .A3(fifo_00_wr_addr[3]), .D(fbit_0[17:0]), .DPRA0(fifo_00_rd_addr[0]), .DPRA1(fifo_00_rd_addr[1]), .DPRA2(fifo_00_rd_addr[2]), .DPRA3(fifo_00_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_00));                       
RAM_18D  RAM_18D_cq0_fbit1 ( .DPO(fifo_01_data_out),  .A0(fifo_01_wr_addr[0]), .A1(fifo_01_wr_addr[1]), .A2(fifo_01_wr_addr[2]), .A3(fifo_01_wr_addr[3]), .D(fbit_1[17:0]), .DPRA0(fifo_00_rd_addr[0]), .DPRA1(fifo_00_rd_addr[1]), .DPRA2(fifo_00_rd_addr[2]), .DPRA3(fifo_00_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_01));
RAM_18D  RAM_18D_cq0_fbit2 ( .DPO(fifo_02_data_out),  .A0(fifo_02_wr_addr[0]), .A1(fifo_02_wr_addr[1]), .A2(fifo_02_wr_addr[2]), .A3(fifo_02_wr_addr[3]), .D(fbit_2[17:0]), .DPRA0(fifo_02_rd_addr[0]), .DPRA1(fifo_02_rd_addr[1]), .DPRA2(fifo_02_rd_addr[2]), .DPRA3(fifo_02_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_02)); 
RAM_18D  RAM_18D_cq0_fbit3 ( .DPO(fifo_03_data_out),  .A0(fifo_03_wr_addr[0]), .A1(fifo_03_wr_addr[1]), .A2(fifo_03_wr_addr[2]), .A3(fifo_03_wr_addr[3]), .D(fbit_3[17:0]), .DPRA0(fifo_02_rd_addr[0]), .DPRA1(fifo_02_rd_addr[1]), .DPRA2(fifo_02_rd_addr[2]), .DPRA3(fifo_02_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_03)); 

// FIFOs associated with qdr2_cq(1)         
RAM_18D  RAM_18D_cq1_fbit0 ( .DPO(fifo_10_data_out),  .A0(fifo_10_wr_addr[0]), .A1(fifo_10_wr_addr[1]), .A2(fifo_10_wr_addr[2]), .A3(fifo_10_wr_addr[3]), .D(fbit_0[35:18]), .DPRA0(fifo_00_rd_addr[0]), .DPRA1(fifo_00_rd_addr[1]), .DPRA2(fifo_00_rd_addr[2]), .DPRA3(fifo_00_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_10));                       
RAM_18D  RAM_18D_cq1_fbit1 ( .DPO(fifo_11_data_out),  .A0(fifo_11_wr_addr[0]), .A1(fifo_11_wr_addr[1]), .A2(fifo_11_wr_addr[2]), .A3(fifo_11_wr_addr[3]), .D(fbit_1[35:18]), .DPRA0(fifo_00_rd_addr[0]), .DPRA1(fifo_00_rd_addr[1]), .DPRA2(fifo_00_rd_addr[2]), .DPRA3(fifo_00_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_11));
RAM_18D  RAM_18D_cq1_fbit2 ( .DPO(fifo_12_data_out),  .A0(fifo_12_wr_addr[0]), .A1(fifo_12_wr_addr[1]), .A2(fifo_12_wr_addr[2]), .A3(fifo_12_wr_addr[3]), .D(fbit_2[35:18]), .DPRA0(fifo_02_rd_addr[0]), .DPRA1(fifo_02_rd_addr[1]), .DPRA2(fifo_02_rd_addr[2]), .DPRA3(fifo_02_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_12)); 
RAM_18D  RAM_18D_cq1_fbit3 ( .DPO(fifo_13_data_out),  .A0(fifo_13_wr_addr[0]), .A1(fifo_13_wr_addr[1]), .A2(fifo_13_wr_addr[2]), .A3(fifo_13_wr_addr[3]), .D(fbit_3[35:18]), .DPRA0(fifo_02_rd_addr[0]), .DPRA1(fifo_02_rd_addr[1]), .DPRA2(fifo_02_rd_addr[2]), .DPRA3(fifo_02_rd_addr[3]), .WCLK(clk90), .WE(transfer_done_13)); 
                           
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -