OpenCores
URL https://opencores.org/ocsvn/dma_axi/dma_axi/trunk

Subversion Repositories dma_axi

[/] [dma_axi/] [trunk/] [src/] [dma_axi64/] [dma_axi64_core0_axim_rdata.v] - Diff between revs 2 and 4

Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 4
 
/////////////////////////////////////////////////////////////////////
 
////                                                             ////
 
////  Author: Eyal Hochberg                                      ////
 
////          eyal@provartec.com                                 ////
 
////                                                             ////
 
////  Downloaded from: http://www.opencores.org                  ////
 
/////////////////////////////////////////////////////////////////////
 
////                                                             ////
 
//// Copyright (C) 2010 Provartec LTD                            ////
 
//// www.provartec.com                                           ////
 
//// info@provartec.com                                          ////
 
////                                                             ////
 
//// This source file may be used and distributed without        ////
 
//// restriction provided that this copyright statement is not   ////
 
//// removed from the file and that any derivative work contains ////
 
//// the original copyright notice and the associated disclaimer.////
 
////                                                             ////
 
//// This source file is free software; you can redistribute it  ////
 
//// and/or modify it under the terms of the GNU Lesser General  ////
 
//// Public License as published by the Free Software Foundation.////
 
////                                                             ////
 
//// This source is distributed in the hope that it will be      ////
 
//// useful, but WITHOUT ANY WARRANTY; without even the implied  ////
 
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR     ////
 
//// PURPOSE.  See the GNU Lesser General Public License for more////
 
//// details. http://www.gnu.org/licenses/lgpl.html              ////
 
////                                                             ////
 
/////////////////////////////////////////////////////////////////////
//---------------------------------------------------------
//---------------------------------------------------------
//-- File generated by RobustVerilog parser
//-- File generated by RobustVerilog parser
//-- Version: 1.0
//-- Version: 1.0
//-- Invoked Fri Mar 25 23:36:55 2011
//-- Invoked Fri Mar 25 23:36:55 2011
//--
//--
//-- Source file: dma_core_axim_rdata.v
//-- Source file: dma_core_axim_rdata.v
//---------------------------------------------------------
//---------------------------------------------------------
 
 
 
 
 
 
module dma_axi64_core0_axim_rdata(clk,reset,joint_stall,ch_fifo_wr,ch_fifo_wdata,ch_fifo_wsize,ch_fifo_wr_num,rd_transfer_num,rd_transfer,rd_transfer_size,rd_burst_cmd,load_wr,load_wr_num,load_wr_cycle,load_wdata,rd_clr_line,rd_clr_line_num,ARVALID,ARREADY,ARID,RID,RDATA,RLAST,RVALID,RREADY,RREADY_out);
module dma_axi64_core0_axim_rdata(clk,reset,joint_stall,ch_fifo_wr,ch_fifo_wdata,ch_fifo_wsize,ch_fifo_wr_num,rd_transfer_num,rd_transfer,rd_transfer_size,rd_burst_cmd,load_wr,load_wr_num,load_wr_cycle,load_wdata,rd_clr_line,rd_clr_line_num,ARVALID,ARREADY,ARID,RID,RDATA,RLAST,RVALID,RREADY,RREADY_out);
 
 
   input               clk;
   input               clk;
   input               reset;
   input               reset;
 
 
   input               joint_stall;
   input               joint_stall;
 
 
   output               ch_fifo_wr;
   output               ch_fifo_wr;
   output [64-1:0]     ch_fifo_wdata;
   output [64-1:0]     ch_fifo_wdata;
   output [4-1:0]     ch_fifo_wsize;
   output [4-1:0]     ch_fifo_wsize;
   output [2:0]           ch_fifo_wr_num;
   output [2:0]           ch_fifo_wr_num;
   output [2:0]           rd_transfer_num;
   output [2:0]           rd_transfer_num;
   output               rd_transfer;
   output               rd_transfer;
   input [4-1:0]      rd_transfer_size;
   input [4-1:0]      rd_transfer_size;
   output               rd_burst_cmd;
   output               rd_burst_cmd;
   output               load_wr;
   output               load_wr;
   output [2:0]           load_wr_num;
   output [2:0]           load_wr_num;
   output [1:0]           load_wr_cycle;
   output [1:0]           load_wr_cycle;
   output [64-1:0]     load_wdata;
   output [64-1:0]     load_wdata;
   output               rd_clr_line;
   output               rd_clr_line;
   output [2:0]           rd_clr_line_num;
   output [2:0]           rd_clr_line_num;
 
 
   input               ARVALID;
   input               ARVALID;
   input               ARREADY;
   input               ARREADY;
   input [`CMD_BITS-1:0]      ARID;
   input [`CMD_BITS-1:0]      ARID;
   input [`CMD_BITS-1:0]      RID;
   input [`CMD_BITS-1:0]      RID;
   input [64-1:0]      RDATA;
   input [64-1:0]      RDATA;
   input               RLAST;
   input               RLAST;
   input               RVALID;
   input               RVALID;
   input               RREADY;
   input               RREADY;
   output               RREADY_out;
   output               RREADY_out;
 
 
 
 
   reg [1:0]               load_wr_cycle;
   reg [1:0]               load_wr_cycle;
   wire               load_cmd_id;
   wire               load_cmd_id;
   wire               rd_clr_line_pre;
   wire               rd_clr_line_pre;
   wire               rd_clr_line_pre_d;
   wire               rd_clr_line_pre_d;
   reg [2:0]               ch_fifo_wr_num_d;
   reg [2:0]               ch_fifo_wr_num_d;
   reg [2:0]               rd_clr_line_num;
   reg [2:0]               rd_clr_line_num;
 
 
 
 
 
 
 
 
 
 
   assign               load_cmd_id     = RID[3];
   assign               load_cmd_id     = RID[3];
 
 
   assign               RREADY_out      = (~rd_clr_line_pre) & (~rd_clr_line_pre_d) & (~joint_stall);
   assign               RREADY_out      = (~rd_clr_line_pre) & (~rd_clr_line_pre_d) & (~joint_stall);
 
 
   assign               rd_transfer_num = RID[2:0];
   assign               rd_transfer_num = RID[2:0];
 
 
   assign               rd_transfer     = RVALID & RREADY & (~load_cmd_id);
   assign               rd_transfer     = RVALID & RREADY & (~load_cmd_id);
 
 
   assign               rd_burst_cmd    = rd_transfer & RID[5];
   assign               rd_burst_cmd    = rd_transfer & RID[5];
 
 
   assign               ch_fifo_wr      = rd_transfer;
   assign               ch_fifo_wr      = rd_transfer;
 
 
   assign               ch_fifo_wdata   = RDATA;
   assign               ch_fifo_wdata   = RDATA;
 
 
   assign               ch_fifo_wsize   = rd_transfer_size;
   assign               ch_fifo_wsize   = rd_transfer_size;
 
 
   assign               ch_fifo_wr_num  = RID[2:0];
   assign               ch_fifo_wr_num  = RID[2:0];
 
 
 
 
   assign               rd_clr_line_pre = RVALID & RREADY & RLAST & RID[6] & (~RID[3]);
   assign               rd_clr_line_pre = RVALID & RREADY & RLAST & RID[6] & (~RID[3]);
 
 
   prgen_delay #(1) delay_clr(.clk(clk), .reset(reset), .din(rd_clr_line_pre), .dout(rd_clr_line_pre_d));
   prgen_delay #(1) delay_clr(.clk(clk), .reset(reset), .din(rd_clr_line_pre), .dout(rd_clr_line_pre_d));
   prgen_delay #(1) delay_clr2(.clk(clk), .reset(reset), .din(rd_clr_line_pre_d), .dout(rd_clr_line));
   prgen_delay #(1) delay_clr2(.clk(clk), .reset(reset), .din(rd_clr_line_pre_d), .dout(rd_clr_line));
 
 
   always @(posedge clk or posedge reset)
   always @(posedge clk or posedge reset)
     if (reset)
     if (reset)
       ch_fifo_wr_num_d <= #1 3'b000;
       ch_fifo_wr_num_d <= #1 3'b000;
     else if (rd_clr_line_pre)
     else if (rd_clr_line_pre)
       ch_fifo_wr_num_d <= #1 ch_fifo_wr_num;
       ch_fifo_wr_num_d <= #1 ch_fifo_wr_num;
 
 
   always @(posedge clk or posedge reset)
   always @(posedge clk or posedge reset)
     if (reset)
     if (reset)
       rd_clr_line_num <= #1 3'b000;
       rd_clr_line_num <= #1 3'b000;
     else if (rd_clr_line_pre_d)
     else if (rd_clr_line_pre_d)
       rd_clr_line_num <= #1 ch_fifo_wr_num_d;
       rd_clr_line_num <= #1 ch_fifo_wr_num_d;
 
 
   assign               load_wr         = RVALID & RREADY & load_cmd_id;
   assign               load_wr         = RVALID & RREADY & load_cmd_id;
 
 
   assign               load_wr_num     = RID[2:0];
   assign               load_wr_num     = RID[2:0];
 
 
   assign               load_wdata      = RDATA;
   assign               load_wdata      = RDATA;
 
 
 
 
   always @(posedge clk or posedge reset)
   always @(posedge clk or posedge reset)
     if (reset)
     if (reset)
       load_wr_cycle <= #1 2'b00;
       load_wr_cycle <= #1 2'b00;
     else if (load_wr & load_wr_cycle[0] & 1'b1)
     else if (load_wr & load_wr_cycle[0] & 1'b1)
       load_wr_cycle <= #1 2'b00;
       load_wr_cycle <= #1 2'b00;
     else if (load_wr)
     else if (load_wr)
       load_wr_cycle <= #1 load_wr_cycle + 1'b1;
       load_wr_cycle <= #1 load_wr_cycle + 1'b1;
 
 
 
 
 
 
 
 
endmodule
endmodule
 
 
 
 
 
 
 
 
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.