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

Subversion Repositories nova

[/] [nova/] [tags/] [Start/] [src/] [ext_RAM_ctrl.v] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 eexuke
//--------------------------------------------------------------------------------------------------
2
// Design    : nova
3
// Author(s) : Ke Xu
4
// Email           : eexuke@yahoo.com
5
// File      : ext_frame_RAM1_wrapper.v
6
// Generated : Nov 28,2005
7
// Copyright (C) 2008 Ke Xu                
8
//-------------------------------------------------------------------------------------------------
9
// Description 
10
// Controller for ext_frame_RAM
11
// Rread  as ref_frame_RAM before Inter Prediction
12
// Write as dis_frame_RAM after  Deblocking Filter
13
//-------------------------------------------------------------------------------------------------
14
 
15
// synopsys translate_off
16
`include "timescale.v"
17
// synopsys translate_on
18
`include "nova_defines.v"
19
 
20
module ext_RAM_ctrl (clk,reset_n,end_of_one_frame,ref_frame_RAM_rd,ref_frame_RAM_rd_addr,dis_frame_RAM_wr,
21
        dis_frame_RAM_wr_addr,ref_frame_RAM_dout,
22
        ext_frame_RAM0_cs_n,ext_frame_RAM0_wr,ext_frame_RAM0_addr,ext_frame_RAM0_data,
23
        ext_frame_RAM1_cs_n,ext_frame_RAM1_wr,ext_frame_RAM1_addr,ext_frame_RAM1_data);
24
        input clk,reset_n;
25
        input end_of_one_frame;
26
        input ref_frame_RAM_rd;
27
        input [13:0] ref_frame_RAM_rd_addr;
28
        input dis_frame_RAM_wr;
29
        input [13:0] dis_frame_RAM_wr_addr;
30
        //input [31:0] dis_frame_RAM_din;
31
        input [31:0] ext_frame_RAM0_data;
32
        input [31:0] ext_frame_RAM1_data;
33
 
34
        output [31:0] ref_frame_RAM_dout;
35
 
36
        output ext_frame_RAM0_cs_n;
37
        output ext_frame_RAM0_wr;
38
        output [13:0] ext_frame_RAM0_addr;
39
 
40
        output ext_frame_RAM1_cs_n;
41
        output ext_frame_RAM1_wr;
42
        output [13:0] ext_frame_RAM1_addr;
43
 
44
        reg ext_frame_RAM_sel;  //0:ext_frame_RAM0 as dis_frame_RAM to be written                       
45
                          //0:ext_frame_RAM1 as ref_frame_RAM to be read
46
                          //1:ext_frame_RAM0 as ref_frame_RAM to be read                        
47
                          //1:ext_frame_RAM1 as dis_frame_RAM to be written
48
        always @ (posedge clk)
49
                if (reset_n == 1'b0)
50
                        ext_frame_RAM_sel <= 1'b0;
51
                else if (end_of_one_frame)
52
                        ext_frame_RAM_sel <= ~ ext_frame_RAM_sel;
53
 
54
        reg [31:0] ref_frame_RAM_dout;
55
 
56
        reg ext_frame_RAM0_cs_n;
57
        reg ext_frame_RAM0_wr;
58
        reg [13:0] ext_frame_RAM0_addr;
59
 
60
        reg ext_frame_RAM1_cs_n;
61
        reg ext_frame_RAM1_wr;
62
        reg [13:0] ext_frame_RAM1_addr;
63
 
64
        always @ (ext_frame_RAM_sel or
65
                ref_frame_RAM_rd or ref_frame_RAM_rd_addr or ext_frame_RAM0_data or ext_frame_RAM1_data or
66
                dis_frame_RAM_wr or dis_frame_RAM_wr_addr)
67
                case (ext_frame_RAM_sel)
68
                        1'b0:
69
                        begin
70
                                //ext_frame_RAM0 as dis_frame_RAM to be written
71
                                ext_frame_RAM0_cs_n <= !dis_frame_RAM_wr;       ext_frame_RAM0_wr <= dis_frame_RAM_wr;
72
                                ext_frame_RAM0_addr <= dis_frame_RAM_wr_addr;
73
 
74
                                //ext_frame_RAM1 as ref_frame_RAM to be read
75
                                ext_frame_RAM1_cs_n <= !ref_frame_RAM_rd;       ext_frame_RAM1_wr <= 1'b0;
76
                                ext_frame_RAM1_addr <= ref_frame_RAM_rd_addr;
77
 
78
                                ref_frame_RAM_dout <= ext_frame_RAM1_data;
79
                        end
80
                        1'b1:
81
                        begin
82
                                //ext_frame_RAM0 as ref_frame_RAM to be read
83
                                ext_frame_RAM0_cs_n <= !ref_frame_RAM_rd;       ext_frame_RAM0_wr <= 1'b0;
84
                                ext_frame_RAM0_addr <= ref_frame_RAM_rd_addr;
85
 
86
                                //ext_frame_RAM1 as dis_frame_RAM to be written
87
                                ext_frame_RAM1_cs_n <= !dis_frame_RAM_wr;               ext_frame_RAM1_wr <= dis_frame_RAM_wr;
88
                                ext_frame_RAM1_addr <= dis_frame_RAM_wr_addr;
89
 
90
                                ref_frame_RAM_dout <= ext_frame_RAM0_data;
91
                        end
92
                endcase
93
        //assign ext_frame_RAM0_data = (!ext_frame_RAM_sel && dis_frame_RAM_wr)? dis_frame_RAM_din:32'bz;
94
        //assign ext_frame_RAM1_data = ( ext_frame_RAM_sel && dis_frame_RAM_wr)? dis_frame_RAM_din:32'bz;
95
endmodule
96
 
97
 

powered by: WebSVN 2.1.0

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