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

Subversion Repositories scsi_chip

[/] [scsi_chip/] [web_uploads/] [Address_translate.v] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 root
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: 
4
// Engineer: 
5
// 
6
// Create Date:    08:41:24 08/06/2008 
7
// Design Name: 
8
// Module Name:    Address_translate 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module Address_translate(address_in, address_out, AS_in, AS_out, CE_N0, CE_N1, CE_N2, CE_N3, CE_N4, CE_N5, CE_N6, CE_N7, CE_N8, CE_N9, CE_N10, CE_N11, CE_N12, CE_N13, CE_N14, CE_N15);
22
    //Ports declarations
23
    //inputs
24
    input [31:0] address_in; // Address from Processor
25
    input AS_in; //Address Strobe from Processor
26
    //outputs
27
    output AS_out;//Address Strobe to SRAM
28
    output [20:0] address_out;//Address to SRAM 
29
//chip enable pins for the 16 SRAM ICs
30
         output CE_N0;
31
         output CE_N1;
32
         output CE_N2;
33
         output CE_N3;
34
         output CE_N4;
35
         output CE_N5;
36
         output CE_N6;
37
         output CE_N7;
38
         output CE_N8;
39
         output CE_N9;
40
         output CE_N10;
41
         output CE_N11;
42
         output CE_N12;
43
         output CE_N13;
44
         output CE_N14;
45
         output CE_N15;
46
//Signals declarations
47
         wire [31:0] address_in;
48
         wire AS_in;
49
         reg AS_out;
50
         reg [20:0]address_out;
51
         reg CE_N0;
52
         reg CE_N1;
53
         reg CE_N2;
54
         reg CE_N3;
55
         reg CE_N4;
56
         reg CE_N5;
57
         reg CE_N6;
58
         reg CE_N7;
59
         reg CE_N8;
60
         reg CE_N9;
61
         reg CE_N10;
62
         reg CE_N11;
63
         reg CE_N12;
64
         reg CE_N13;
65
         reg CE_N14;
66
         reg CE_N15;
67
         wire [2:0] bank_sel = address_in[23:22];
68
         initial
69
                 begin
70
                 CE_N0 = 1'b1;
71
                 CE_N1 = 1'b1;
72
                 CE_N2 = 1'b1;
73
                 CE_N3 = 1'b1;
74
                 CE_N4 = 1'b1;
75
                 CE_N5 = 1'b1;
76
                 CE_N6 = 1'b1;
77
                 CE_N7 = 1'b1;
78
                 CE_N8 = 1'b1;
79
                 CE_N9 = 1'b1;
80
                 CE_N10 = 1'b1;
81
                 CE_N11 = 1'b1;
82
                 CE_N12 = 1'b1;
83
                 CE_N13 = 1'b1;
84
                 CE_N14 = 1'b1;
85
                 CE_N15 = 1'b1;
86
                 end
87
always @(negedge AS_in) begin
88
        address_out = address_in[20:0];
89
        if(bank_sel === 3'b000)begin
90
                CE_N0 = 0;
91
                CE_N1 = 0;
92
                CE_N2 = 0;
93
                CE_N3 = 0;
94
                CE_N4 = 1;
95
                CE_N5 = 1;
96
                CE_N6 = 1;
97
                CE_N7 = 1;
98
                CE_N8 = 1;
99
                CE_N9 = 1;
100
                CE_N10 = 1;
101
                CE_N11 = 1;
102
                CE_N12 = 1;
103
                CE_N13 = 1;
104
                CE_N14 = 1;
105
                CE_N15 = 1;
106
                end
107
        else if (bank_sel === 3'b001)begin
108
                CE_N0 = 1;
109
                CE_N1 = 1;
110
                CE_N2 = 1;
111
                CE_N3 = 1;
112
                CE_N4 = 0;
113
                CE_N5 = 0;
114
                CE_N6 = 0;
115
                CE_N7 = 0;
116
                CE_N8 = 1;
117
                CE_N9 = 1;
118
                CE_N10 = 1;
119
                CE_N11 = 1;
120
                CE_N12 = 1;
121
                CE_N13 = 1;
122
                CE_N14 = 1;
123
                CE_N15 = 1;
124
                end
125
        else if (bank_sel === 3'b010)begin
126
                CE_N0 = 1;
127
                CE_N1 = 1;
128
                CE_N2 = 1;
129
                CE_N3 = 1;
130
                CE_N4 = 1;
131
                CE_N5 = 1;
132
                CE_N6 = 1;
133
                CE_N7 = 1;
134
                CE_N8 = 0;
135
                CE_N9 = 0;
136
                CE_N10 = 0;
137
                CE_N11 = 0;
138
                CE_N12 = 1;
139
                CE_N13 = 1;
140
                CE_N14 = 1;
141
                CE_N15 = 1;
142
                end
143
        else if (bank_sel === 3'b011)begin
144
                CE_N0 = 1;
145
                CE_N1 = 1;
146
                CE_N2 = 1;
147
                CE_N3 = 1;
148
                CE_N4 = 1;
149
                CE_N5 = 1;
150
                CE_N6 = 1;
151
                CE_N7 = 1;
152
                CE_N8 = 1;
153
                CE_N9 = 1;
154
                CE_N10 = 1;
155
                CE_N11 = 1;
156
                CE_N12 = 0;
157
                CE_N13 = 0;
158
                CE_N14 = 0;
159
                CE_N15 = 0;
160
                end
161
        else begin
162
                CE_N0 = 1;
163
                CE_N1 = 1;
164
                CE_N2 = 1;
165
                CE_N3 = 1;
166
                CE_N4 = 1;
167
                CE_N5 = 1;
168
                CE_N6 = 1;
169
                CE_N7 = 1;
170
                CE_N8 = 1;
171
                CE_N9 = 1;
172
                CE_N10 = 1;
173
                CE_N11 = 1;
174
                CE_N12 = 1;
175
                CE_N13 = 1;
176
                CE_N14 = 1;
177
                CE_N15 = 1;
178
        end
179
end
180
 
181
endmodule

powered by: WebSVN 2.1.0

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