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

Subversion Repositories nova

[/] [nova/] [tags/] [Start/] [src/] [ext_RAM_ctrl.v] - Diff between revs 2 and 3

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 3
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// Design    : nova
// Design    : nova
// Author(s) : Ke Xu
// Author(s) : Ke Xu
// Email           : eexuke@yahoo.com
// Email           : eexuke@yahoo.com
// File      : ext_frame_RAM1_wrapper.v
// File      : ext_frame_RAM1_wrapper.v
// Generated : Nov 28,2005
// Generated : Nov 28,2005
// Copyright (C) 2008 Ke Xu                
// Copyright (C) 2008 Ke Xu                
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
// Description 
// Description 
// Controller for ext_frame_RAM
// Controller for ext_frame_RAM
// Rread  as ref_frame_RAM before Inter Prediction
// Rread  as ref_frame_RAM before Inter Prediction
// Write as dis_frame_RAM after  Deblocking Filter
// Write as dis_frame_RAM after  Deblocking Filter
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
 
 
// synopsys translate_off
// synopsys translate_off
`include "timescale.v"
`include "timescale.v"
// synopsys translate_on
// synopsys translate_on
`include "nova_defines.v"
`include "nova_defines.v"
 
 
module ext_RAM_ctrl (clk,reset_n,end_of_one_frame,ref_frame_RAM_rd,ref_frame_RAM_rd_addr,dis_frame_RAM_wr,
module ext_RAM_ctrl (clk,reset_n,end_of_one_frame,ref_frame_RAM_rd,ref_frame_RAM_rd_addr,dis_frame_RAM_wr,
        dis_frame_RAM_wr_addr,ref_frame_RAM_dout,
        dis_frame_RAM_wr_addr,ref_frame_RAM_dout,
        ext_frame_RAM0_cs_n,ext_frame_RAM0_wr,ext_frame_RAM0_addr,ext_frame_RAM0_data,
        ext_frame_RAM0_cs_n,ext_frame_RAM0_wr,ext_frame_RAM0_addr,ext_frame_RAM0_data,
        ext_frame_RAM1_cs_n,ext_frame_RAM1_wr,ext_frame_RAM1_addr,ext_frame_RAM1_data);
        ext_frame_RAM1_cs_n,ext_frame_RAM1_wr,ext_frame_RAM1_addr,ext_frame_RAM1_data);
        input clk,reset_n;
        input clk,reset_n;
        input end_of_one_frame;
        input end_of_one_frame;
        input ref_frame_RAM_rd;
        input ref_frame_RAM_rd;
        input [13:0] ref_frame_RAM_rd_addr;
        input [13:0] ref_frame_RAM_rd_addr;
        input dis_frame_RAM_wr;
        input dis_frame_RAM_wr;
        input [13:0] dis_frame_RAM_wr_addr;
        input [13:0] dis_frame_RAM_wr_addr;
        //input [31:0] dis_frame_RAM_din;
        //input [31:0] dis_frame_RAM_din;
        input [31:0] ext_frame_RAM0_data;
        input [31:0] ext_frame_RAM0_data;
        input [31:0] ext_frame_RAM1_data;
        input [31:0] ext_frame_RAM1_data;
 
 
        output [31:0] ref_frame_RAM_dout;
        output [31:0] ref_frame_RAM_dout;
 
 
        output ext_frame_RAM0_cs_n;
        output ext_frame_RAM0_cs_n;
        output ext_frame_RAM0_wr;
        output ext_frame_RAM0_wr;
        output [13:0] ext_frame_RAM0_addr;
        output [13:0] ext_frame_RAM0_addr;
 
 
        output ext_frame_RAM1_cs_n;
        output ext_frame_RAM1_cs_n;
        output ext_frame_RAM1_wr;
        output ext_frame_RAM1_wr;
        output [13:0] ext_frame_RAM1_addr;
        output [13:0] ext_frame_RAM1_addr;
 
 
        reg ext_frame_RAM_sel;  //0:ext_frame_RAM0 as dis_frame_RAM to be written                       
        reg ext_frame_RAM_sel;  //0:ext_frame_RAM0 as dis_frame_RAM to be written                       
                          //0:ext_frame_RAM1 as ref_frame_RAM to be read
                          //0:ext_frame_RAM1 as ref_frame_RAM to be read
                          //1:ext_frame_RAM0 as ref_frame_RAM to be read                        
                          //1:ext_frame_RAM0 as ref_frame_RAM to be read                        
                          //1:ext_frame_RAM1 as dis_frame_RAM to be written
                          //1:ext_frame_RAM1 as dis_frame_RAM to be written
        always @ (posedge clk)
        always @ (posedge clk)
                if (reset_n == 1'b0)
                if (reset_n == 1'b0)
                        ext_frame_RAM_sel <= 1'b0;
                        ext_frame_RAM_sel <= 1'b0;
                else if (end_of_one_frame)
                else if (end_of_one_frame)
                        ext_frame_RAM_sel <= ~ ext_frame_RAM_sel;
                        ext_frame_RAM_sel <= ~ ext_frame_RAM_sel;
 
 
        reg [31:0] ref_frame_RAM_dout;
        reg [31:0] ref_frame_RAM_dout;
 
 
        reg ext_frame_RAM0_cs_n;
        reg ext_frame_RAM0_cs_n;
        reg ext_frame_RAM0_wr;
        reg ext_frame_RAM0_wr;
        reg [13:0] ext_frame_RAM0_addr;
        reg [13:0] ext_frame_RAM0_addr;
 
 
        reg ext_frame_RAM1_cs_n;
        reg ext_frame_RAM1_cs_n;
        reg ext_frame_RAM1_wr;
        reg ext_frame_RAM1_wr;
        reg [13:0] ext_frame_RAM1_addr;
        reg [13:0] ext_frame_RAM1_addr;
 
 
        always @ (ext_frame_RAM_sel or
        always @ (ext_frame_RAM_sel or
                ref_frame_RAM_rd or ref_frame_RAM_rd_addr or ext_frame_RAM0_data or ext_frame_RAM1_data or
                ref_frame_RAM_rd or ref_frame_RAM_rd_addr or ext_frame_RAM0_data or ext_frame_RAM1_data or
                dis_frame_RAM_wr or dis_frame_RAM_wr_addr)
                dis_frame_RAM_wr or dis_frame_RAM_wr_addr)
                case (ext_frame_RAM_sel)
                case (ext_frame_RAM_sel)
                        1'b0:
                        1'b0:
                        begin
                        begin
                                //ext_frame_RAM0 as dis_frame_RAM to be written
                                //ext_frame_RAM0 as dis_frame_RAM to be written
                                ext_frame_RAM0_cs_n <= !dis_frame_RAM_wr;       ext_frame_RAM0_wr <= dis_frame_RAM_wr;
                                ext_frame_RAM0_cs_n <= !dis_frame_RAM_wr;       ext_frame_RAM0_wr <= dis_frame_RAM_wr;
                                ext_frame_RAM0_addr <= dis_frame_RAM_wr_addr;
                                ext_frame_RAM0_addr <= dis_frame_RAM_wr_addr;
 
 
                                //ext_frame_RAM1 as ref_frame_RAM to be read
                                //ext_frame_RAM1 as ref_frame_RAM to be read
                                ext_frame_RAM1_cs_n <= !ref_frame_RAM_rd;       ext_frame_RAM1_wr <= 1'b0;
                                ext_frame_RAM1_cs_n <= !ref_frame_RAM_rd;       ext_frame_RAM1_wr <= 1'b0;
                                ext_frame_RAM1_addr <= ref_frame_RAM_rd_addr;
                                ext_frame_RAM1_addr <= ref_frame_RAM_rd_addr;
 
 
                                ref_frame_RAM_dout <= ext_frame_RAM1_data;
                                ref_frame_RAM_dout <= ext_frame_RAM1_data;
                        end
                        end
                        1'b1:
                        1'b1:
                        begin
                        begin
                                //ext_frame_RAM0 as ref_frame_RAM to be read
                                //ext_frame_RAM0 as ref_frame_RAM to be read
                                ext_frame_RAM0_cs_n <= !ref_frame_RAM_rd;       ext_frame_RAM0_wr <= 1'b0;
                                ext_frame_RAM0_cs_n <= !ref_frame_RAM_rd;       ext_frame_RAM0_wr <= 1'b0;
                                ext_frame_RAM0_addr <= ref_frame_RAM_rd_addr;
                                ext_frame_RAM0_addr <= ref_frame_RAM_rd_addr;
 
 
                                //ext_frame_RAM1 as dis_frame_RAM to be written
                                //ext_frame_RAM1 as dis_frame_RAM to be written
                                ext_frame_RAM1_cs_n <= !dis_frame_RAM_wr;               ext_frame_RAM1_wr <= dis_frame_RAM_wr;
                                ext_frame_RAM1_cs_n <= !dis_frame_RAM_wr;               ext_frame_RAM1_wr <= dis_frame_RAM_wr;
                                ext_frame_RAM1_addr <= dis_frame_RAM_wr_addr;
                                ext_frame_RAM1_addr <= dis_frame_RAM_wr_addr;
 
 
                                ref_frame_RAM_dout <= ext_frame_RAM0_data;
                                ref_frame_RAM_dout <= ext_frame_RAM0_data;
                        end
                        end
                endcase
                endcase
        //assign ext_frame_RAM0_data = (!ext_frame_RAM_sel && dis_frame_RAM_wr)? dis_frame_RAM_din:32'bz;
        //assign ext_frame_RAM0_data = (!ext_frame_RAM_sel && dis_frame_RAM_wr)? dis_frame_RAM_din:32'bz;
        //assign ext_frame_RAM1_data = ( ext_frame_RAM_sel && dis_frame_RAM_wr)? dis_frame_RAM_din:32'bz;
        //assign ext_frame_RAM1_data = ( ext_frame_RAM_sel && dis_frame_RAM_wr)? dis_frame_RAM_din:32'bz;
endmodule
endmodule
 
 
 
 

powered by: WebSVN 2.1.0

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