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

📄 data_read_24bit.v

📁 XILINX memory interface generator. XILINX的外部存储器接口。
💻 V
📖 第 1 页 / 共 2 页
字号:
  `timescale 1ns/100ps

module    data_read_24bit   ( 

     clk,               
     clk90,             
     reset90_r,         
     reset270_r,        
     ddr_dq_in,         
     read_valid_data_1,  
     fifo_00_wr_en,			
     fifo_10_wr_en,			
     fifo_20_wr_en,			
     fifo_01_wr_en,			
     fifo_11_wr_en,			
     fifo_21_wr_en,			
     fifo_00_wr_addr,    
     fifo_01_wr_addr,    
     fifo_10_wr_addr,    
     fifo_11_wr_addr,    
     fifo_20_wr_addr,    
     fifo_21_wr_addr,    
     dqs0_delayed_col1,  
     dqs1_delayed_col1,  
     dqs2_delayed_col1,  
     dqs0_delayed_col0_n,
     dqs1_delayed_col0_n,
     dqs2_delayed_col0_n,
     user_output_data,
     fifo_00_rd_addr,
     fifo_01_rd_addr,
     fifo_10_rd_addr,
     fifo_11_rd_addr,
     fifo_20_rd_addr,
     fifo_21_rd_addr
);

input     clk;       
input     clk90;     
input     reset90_r; 
input     reset270_r;

input     [23:0]ddr_dq_in;
input     read_valid_data_1;
     
input     fifo_00_wr_en;
input     fifo_10_wr_en;
input     fifo_20_wr_en;			

input     fifo_01_wr_en;			
input     fifo_11_wr_en;			
input     fifo_21_wr_en;			
		
input     [3:0]fifo_00_wr_addr; 
input     [3:0]fifo_01_wr_addr; 
input     [3:0]fifo_10_wr_addr; 
input     [3:0]fifo_11_wr_addr; 
input     [3:0]fifo_20_wr_addr; 
input     [3:0]fifo_21_wr_addr; 
		
input     dqs0_delayed_col1;  
input     dqs1_delayed_col1;  
input     dqs2_delayed_col1;  
     
input     dqs0_delayed_col0_n;
input     dqs1_delayed_col0_n;
input     dqs2_delayed_col0_n;
     
output     [47:0]user_output_data; 

input     [3:0]fifo_00_rd_addr;
input     [3:0]fifo_01_rd_addr;
input     [3:0]fifo_10_rd_addr;
input     [3:0]fifo_11_rd_addr;
input     [3:0]fifo_20_rd_addr;
input     [3:0]fifo_21_rd_addr;

wire [7:0]fifo_00_data_out;
wire [7:0]fifo_01_data_out;
wire [7:0]fifo_10_data_out;
wire [7:0]fifo_11_data_out;
wire [7:0]fifo_20_data_out;
wire [7:0]fifo_21_data_out;

reg [47:0]first_sdr_data; 

assign user_output_data    = first_sdr_data;

always@(posedge clk90)
begin
    if (reset90_r == 1'b1)
    	first_sdr_data   <= 64'd0;
    else
    begin
             if (read_valid_data_1 == 1'b1)
               first_sdr_data  <= {	   fifo_20_data_out,fifo_10_data_out,
               				   fifo_00_data_out,fifo_21_data_out,
               				   fifo_11_data_out,fifo_01_data_out};
             else
               first_sdr_data  <= first_sdr_data;               
     end
end     

//*************************************************************************************************************************
// Dual Port RAM 16x1 instantiations (fifo0 // Positive edge, fifo1 -- Trailing edge) 
//*************************************************************************************************************************

//- Byte0 instantiation

 RAM16X1D fifo0_bit0               
	 (  .DPO(fifo_00_data_out[0]), 
	    .SPO( ),       
          .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(ddr_dq_in[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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit0               
	 ( .DPO(fifo_01_data_out[0]),
	   .SPO( ),          
          .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(ddr_dq_in[0]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );                       

 RAM16X1D fifo0_bit1               
	 ( .DPO(fifo_00_data_out[1]),
	 .SPO( ),          
          .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(ddr_dq_in[1]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit1               
	 ( .DPO(fifo_01_data_out[1]),          
	 .SPO( ),
          .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(ddr_dq_in[1]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           ); 
           
 RAM16X1D fifo0_bit2               
	 ( .DPO(fifo_00_data_out[2]),          
	 .SPO( ),
          .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(ddr_dq_in[2]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit2               
	 ( .DPO(fifo_01_data_out[2]),          
	 .SPO( ),
          .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(ddr_dq_in[2]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );                                  
            
 RAM16X1D fifo0_bit3               
	 ( .DPO(fifo_00_data_out[3]),          
	 .SPO( ),
          .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(ddr_dq_in[3]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit3               
	 ( .DPO(fifo_01_data_out[3]),          
	 .SPO( ),
          .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(ddr_dq_in[3]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );   
           
           
 RAM16X1D fifo0_bit4               
	 ( .DPO(fifo_00_data_out[4]),          
	 .SPO( ),
          .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(ddr_dq_in[4]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit4               
	 ( .DPO(fifo_01_data_out[4]),          
	 .SPO( ),
          .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(ddr_dq_in[4]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );                                  
           
  RAM16X1D fifo0_bit5               
	 ( .DPO(fifo_00_data_out[5]),          
	 .SPO( ),
          .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(ddr_dq_in[5]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit5               
	 ( .DPO(fifo_01_data_out[5]),          
	 .SPO( ),
          .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(ddr_dq_in[5]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );                                 
           
           
   RAM16X1D fifo0_bit6               
	 ( .DPO(fifo_00_data_out[6]),          
	 .SPO( ),
          .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(ddr_dq_in[6]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit6               
	 ( .DPO(fifo_01_data_out[6]),          
	 .SPO( ),
          .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(ddr_dq_in[6]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );                                
           
           
           
  RAM16X1D fifo0_bit7               
	 ( .DPO(fifo_00_data_out[7]),          
	 .SPO( ),
          .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(ddr_dq_in[7]),      
          .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(dqs0_delayed_col1),          
          .WE(fifo_00_wr_en)
           );                       

 RAM16X1D fifo1_bit7               
	 ( .DPO(fifo_01_data_out[7]),          
	 .SPO( ),
          .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(ddr_dq_in[7]),      
          .DPRA0(fifo_01_rd_addr[0]),
          .DPRA1(fifo_01_rd_addr[1]),
          .DPRA2(fifo_01_rd_addr[2]),
          .DPRA3(fifo_01_rd_addr[3]),
          .WCLK(dqs0_delayed_col0_n),          
          .WE(fifo_01_wr_en)
           );                                 
           
// Byte1 Fifo instantiation 

  RAM16X1D fifo0_bit8               
	 ( .DPO(fifo_10_data_out[0]),          
	 .SPO( ),
          .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(ddr_dq_in[8]),      
          .DPRA0(fifo_10_rd_addr[0]),
          .DPRA1(fifo_10_rd_addr[1]),
          .DPRA2(fifo_10_rd_addr[2]),
          .DPRA3(fifo_10_rd_addr[3]),
          .WCLK(dqs1_delayed_col1),          
          .WE(fifo_10_wr_en)
           );                       

 RAM16X1D fifo1_bit8               
	 ( .DPO(fifo_11_data_out[0]),          
	 .SPO( ),
          .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(ddr_dq_in[8]),      
          .DPRA0(fifo_11_rd_addr[0]),
          .DPRA1(fifo_11_rd_addr[1]),
          .DPRA2(fifo_11_rd_addr[2]),
          .DPRA3(fifo_11_rd_addr[3]),
          .WCLK(dqs1_delayed_col0_n),          
          .WE(fifo_11_wr_en)
           );                                 
           
  RAM16X1D fifo0_bit9               
	 ( .DPO(fifo_10_data_out[1]),          
	 .SPO( ),
          .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(ddr_dq_in[9]),      
          .DPRA0(fifo_10_rd_addr[0]),
          .DPRA1(fifo_10_rd_addr[1]),
          .DPRA2(fifo_10_rd_addr[2]),
          .DPRA3(fifo_10_rd_addr[3]),
          .WCLK(dqs1_delayed_col1),          
          .WE(fifo_10_wr_en)
           );                       

 RAM16X1D fifo1_bit9               
	 ( .DPO(fifo_11_data_out[1]),          
	 .SPO( ),
          .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(ddr_dq_in[9]),      
          .DPRA0(fifo_11_rd_addr[0]),
          .DPRA1(fifo_11_rd_addr[1]),
          .DPRA2(fifo_11_rd_addr[2]),
          .DPRA3(fifo_11_rd_addr[3]),
          .WCLK(dqs1_delayed_col0_n),          
          .WE(fifo_11_wr_en)
           );                                 
 
 
  RAM16X1D fifo0_bit10               
	 ( .DPO(fifo_10_data_out[2]),          
	 .SPO( ),
          .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(ddr_dq_in[10]),      
          .DPRA0(fifo_10_rd_addr[0]),

⌨️ 快捷键说明

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