Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / dmu / rtl / dmu_imu_eqs_csr_eq_tail_entry.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: dmu_imu_eqs_csr_eq_tail_entry.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35module dmu_imu_eqs_csr_eq_tail_entry
36 (
37 // synopsys translate_off
38 omni_ld,
39 omni_data,
40 // synopsys translate_on
41 clk,
42 rst_l,
43 w_ld,
44 csrbus_wr_data,
45 eq_tail_csrbus_read_data,
46 eq_tail_overr_hw_ld,
47 eq_tail_overr_hw_write,
48 eq_tail_tail_hw_ld,
49 eq_tail_tail_hw_write
50 );
51
52//====================================================================
53// Polarity declarations
54//====================================================================
55// synopsys translate_off
56 input omni_ld; // Omni load
57// vlint flag_input_port_not_connected off
58 input [`FIRE_DLC_IMU_EQS_CSR_EQ_TAIL_WIDTH - 1:0] omni_data; // Omni write
59 // data
60// synopsys translate_on
61// vlint flag_input_port_not_connected on
62input clk; // Clock signal
63input rst_l; // Reset signal
64input w_ld; // SW load
65// vlint flag_input_port_not_connected off
66input [`FIRE_CSRBUS_DATA_WIDTH-1:0] csrbus_wr_data; // SW write data
67// vlint flag_input_port_not_connected on
68output [`FIRE_DLC_IMU_EQS_CSR_EQ_TAIL_WIDTH-1:0] eq_tail_csrbus_read_data;
69 // SW read data
70input eq_tail_overr_hw_ld; // Hardware load enable for eq_tail_overr. When
71 // set, <hw write signal> will be loaded into
72 // eq_tail.
73input eq_tail_overr_hw_write; // data bus for hw loading of eq_tail_overr.
74input eq_tail_tail_hw_ld; // Hardware load enable for eq_tail_tail. When set,
75 // <hw write signal> will be loaded into eq_tail.
76input [`FIRE_DLC_IMU_EQS_CSR_EQ_TAIL_TAIL_INT_SLC] eq_tail_tail_hw_write;
77 // data bus for hw loading of eq_tail_tail.
78
79//====================================================================
80// Type declarations
81//====================================================================
82// synopsys translate_off
83 wire omni_ld; // Omni load
84// vlint flag_dangling_net_within_module off
85// vlint flag_net_has_no_load off
86 wire [`FIRE_DLC_IMU_EQS_CSR_EQ_TAIL_WIDTH - 1:0] omni_data; // Omni write
87 // data
88// synopsys translate_on
89// vlint flag_dangling_net_within_module on
90// vlint flag_net_has_no_load on
91wire clk; // Clock signal
92wire rst_l; // Reset signal
93wire w_ld; // SW load
94// vlint flag_dangling_net_within_module off
95// vlint flag_net_has_no_load off
96wire [`FIRE_CSRBUS_DATA_WIDTH-1:0] csrbus_wr_data; // SW write data
97// vlint flag_dangling_net_within_module on
98// vlint flag_net_has_no_load on
99wire [`FIRE_DLC_IMU_EQS_CSR_EQ_TAIL_WIDTH-1:0] eq_tail_csrbus_read_data;
100 // SW read data
101wire eq_tail_overr_hw_ld; // Hardware load enable for eq_tail_overr. When set,
102 // <hw write signal> will be loaded into eq_tail.
103wire eq_tail_overr_hw_write; // data bus for hw loading of eq_tail_overr.
104wire eq_tail_tail_hw_ld; // Hardware load enable for eq_tail_tail. When set,
105 // <hw write signal> will be loaded into eq_tail.
106wire [`FIRE_DLC_IMU_EQS_CSR_EQ_TAIL_TAIL_INT_SLC] eq_tail_tail_hw_write;
107 // data bus for hw loading of eq_tail_tail.
108
109//====================================================================
110// Logic
111//====================================================================
112
113//----- Reset values
114// verilint 531 off
115wire [0:0] reset_overr = 1'h0;
116wire [6:0] reset_tail = 7'h0;
117// verilint 531 on
118
119//----- Active high reset wires
120wire rst_l_active_high = ~rst_l;
121
122//====================================================
123// Instantiation of flops
124//====================================================
125
126// bit 0
127csr_sw csr_sw_0
128 (
129 // synopsys translate_off
130 .omni_ld (omni_ld),
131 .omni_data (omni_data[0]),
132 .omni_rw_alias (1'b1),
133 .omni_rw1c_alias (1'b0),
134 .omni_rw1s_alias (1'b0),
135 // synopsys translate_on
136 .rst (rst_l_active_high),
137 .rst_val (reset_tail[0]),
138 .csr_ld (w_ld),
139 .csr_data (csrbus_wr_data[0]),
140 .rw_alias (1'b1),
141 .rw1c_alias (1'b0),
142 .rw1s_alias (1'b0),
143 .hw_ld (eq_tail_tail_hw_ld),
144 .hw_data (eq_tail_tail_hw_write[0]),
145 .cp (clk),
146 .q (eq_tail_csrbus_read_data[0])
147 );
148
149// bit 1
150csr_sw csr_sw_1
151 (
152 // synopsys translate_off
153 .omni_ld (omni_ld),
154 .omni_data (omni_data[1]),
155 .omni_rw_alias (1'b1),
156 .omni_rw1c_alias (1'b0),
157 .omni_rw1s_alias (1'b0),
158 // synopsys translate_on
159 .rst (rst_l_active_high),
160 .rst_val (reset_tail[1]),
161 .csr_ld (w_ld),
162 .csr_data (csrbus_wr_data[1]),
163 .rw_alias (1'b1),
164 .rw1c_alias (1'b0),
165 .rw1s_alias (1'b0),
166 .hw_ld (eq_tail_tail_hw_ld),
167 .hw_data (eq_tail_tail_hw_write[1]),
168 .cp (clk),
169 .q (eq_tail_csrbus_read_data[1])
170 );
171
172// bit 2
173csr_sw csr_sw_2
174 (
175 // synopsys translate_off
176 .omni_ld (omni_ld),
177 .omni_data (omni_data[2]),
178 .omni_rw_alias (1'b1),
179 .omni_rw1c_alias (1'b0),
180 .omni_rw1s_alias (1'b0),
181 // synopsys translate_on
182 .rst (rst_l_active_high),
183 .rst_val (reset_tail[2]),
184 .csr_ld (w_ld),
185 .csr_data (csrbus_wr_data[2]),
186 .rw_alias (1'b1),
187 .rw1c_alias (1'b0),
188 .rw1s_alias (1'b0),
189 .hw_ld (eq_tail_tail_hw_ld),
190 .hw_data (eq_tail_tail_hw_write[2]),
191 .cp (clk),
192 .q (eq_tail_csrbus_read_data[2])
193 );
194
195// bit 3
196csr_sw csr_sw_3
197 (
198 // synopsys translate_off
199 .omni_ld (omni_ld),
200 .omni_data (omni_data[3]),
201 .omni_rw_alias (1'b1),
202 .omni_rw1c_alias (1'b0),
203 .omni_rw1s_alias (1'b0),
204 // synopsys translate_on
205 .rst (rst_l_active_high),
206 .rst_val (reset_tail[3]),
207 .csr_ld (w_ld),
208 .csr_data (csrbus_wr_data[3]),
209 .rw_alias (1'b1),
210 .rw1c_alias (1'b0),
211 .rw1s_alias (1'b0),
212 .hw_ld (eq_tail_tail_hw_ld),
213 .hw_data (eq_tail_tail_hw_write[3]),
214 .cp (clk),
215 .q (eq_tail_csrbus_read_data[3])
216 );
217
218// bit 4
219csr_sw csr_sw_4
220 (
221 // synopsys translate_off
222 .omni_ld (omni_ld),
223 .omni_data (omni_data[4]),
224 .omni_rw_alias (1'b1),
225 .omni_rw1c_alias (1'b0),
226 .omni_rw1s_alias (1'b0),
227 // synopsys translate_on
228 .rst (rst_l_active_high),
229 .rst_val (reset_tail[4]),
230 .csr_ld (w_ld),
231 .csr_data (csrbus_wr_data[4]),
232 .rw_alias (1'b1),
233 .rw1c_alias (1'b0),
234 .rw1s_alias (1'b0),
235 .hw_ld (eq_tail_tail_hw_ld),
236 .hw_data (eq_tail_tail_hw_write[4]),
237 .cp (clk),
238 .q (eq_tail_csrbus_read_data[4])
239 );
240
241// bit 5
242csr_sw csr_sw_5
243 (
244 // synopsys translate_off
245 .omni_ld (omni_ld),
246 .omni_data (omni_data[5]),
247 .omni_rw_alias (1'b1),
248 .omni_rw1c_alias (1'b0),
249 .omni_rw1s_alias (1'b0),
250 // synopsys translate_on
251 .rst (rst_l_active_high),
252 .rst_val (reset_tail[5]),
253 .csr_ld (w_ld),
254 .csr_data (csrbus_wr_data[5]),
255 .rw_alias (1'b1),
256 .rw1c_alias (1'b0),
257 .rw1s_alias (1'b0),
258 .hw_ld (eq_tail_tail_hw_ld),
259 .hw_data (eq_tail_tail_hw_write[5]),
260 .cp (clk),
261 .q (eq_tail_csrbus_read_data[5])
262 );
263
264// bit 6
265csr_sw csr_sw_6
266 (
267 // synopsys translate_off
268 .omni_ld (omni_ld),
269 .omni_data (omni_data[6]),
270 .omni_rw_alias (1'b1),
271 .omni_rw1c_alias (1'b0),
272 .omni_rw1s_alias (1'b0),
273 // synopsys translate_on
274 .rst (rst_l_active_high),
275 .rst_val (reset_tail[6]),
276 .csr_ld (w_ld),
277 .csr_data (csrbus_wr_data[6]),
278 .rw_alias (1'b1),
279 .rw1c_alias (1'b0),
280 .rw1s_alias (1'b0),
281 .hw_ld (eq_tail_tail_hw_ld),
282 .hw_data (eq_tail_tail_hw_write[6]),
283 .cp (clk),
284 .q (eq_tail_csrbus_read_data[6])
285 );
286
287assign eq_tail_csrbus_read_data[7] = 1'b0; // bit 7
288assign eq_tail_csrbus_read_data[8] = 1'b0; // bit 8
289assign eq_tail_csrbus_read_data[9] = 1'b0; // bit 9
290assign eq_tail_csrbus_read_data[10] = 1'b0; // bit 10
291assign eq_tail_csrbus_read_data[11] = 1'b0; // bit 11
292assign eq_tail_csrbus_read_data[12] = 1'b0; // bit 12
293assign eq_tail_csrbus_read_data[13] = 1'b0; // bit 13
294assign eq_tail_csrbus_read_data[14] = 1'b0; // bit 14
295assign eq_tail_csrbus_read_data[15] = 1'b0; // bit 15
296assign eq_tail_csrbus_read_data[16] = 1'b0; // bit 16
297assign eq_tail_csrbus_read_data[17] = 1'b0; // bit 17
298assign eq_tail_csrbus_read_data[18] = 1'b0; // bit 18
299assign eq_tail_csrbus_read_data[19] = 1'b0; // bit 19
300assign eq_tail_csrbus_read_data[20] = 1'b0; // bit 20
301assign eq_tail_csrbus_read_data[21] = 1'b0; // bit 21
302assign eq_tail_csrbus_read_data[22] = 1'b0; // bit 22
303assign eq_tail_csrbus_read_data[23] = 1'b0; // bit 23
304assign eq_tail_csrbus_read_data[24] = 1'b0; // bit 24
305assign eq_tail_csrbus_read_data[25] = 1'b0; // bit 25
306assign eq_tail_csrbus_read_data[26] = 1'b0; // bit 26
307assign eq_tail_csrbus_read_data[27] = 1'b0; // bit 27
308assign eq_tail_csrbus_read_data[28] = 1'b0; // bit 28
309assign eq_tail_csrbus_read_data[29] = 1'b0; // bit 29
310assign eq_tail_csrbus_read_data[30] = 1'b0; // bit 30
311assign eq_tail_csrbus_read_data[31] = 1'b0; // bit 31
312assign eq_tail_csrbus_read_data[32] = 1'b0; // bit 32
313assign eq_tail_csrbus_read_data[33] = 1'b0; // bit 33
314assign eq_tail_csrbus_read_data[34] = 1'b0; // bit 34
315assign eq_tail_csrbus_read_data[35] = 1'b0; // bit 35
316assign eq_tail_csrbus_read_data[36] = 1'b0; // bit 36
317assign eq_tail_csrbus_read_data[37] = 1'b0; // bit 37
318assign eq_tail_csrbus_read_data[38] = 1'b0; // bit 38
319assign eq_tail_csrbus_read_data[39] = 1'b0; // bit 39
320assign eq_tail_csrbus_read_data[40] = 1'b0; // bit 40
321assign eq_tail_csrbus_read_data[41] = 1'b0; // bit 41
322assign eq_tail_csrbus_read_data[42] = 1'b0; // bit 42
323assign eq_tail_csrbus_read_data[43] = 1'b0; // bit 43
324assign eq_tail_csrbus_read_data[44] = 1'b0; // bit 44
325assign eq_tail_csrbus_read_data[45] = 1'b0; // bit 45
326assign eq_tail_csrbus_read_data[46] = 1'b0; // bit 46
327assign eq_tail_csrbus_read_data[47] = 1'b0; // bit 47
328assign eq_tail_csrbus_read_data[48] = 1'b0; // bit 48
329assign eq_tail_csrbus_read_data[49] = 1'b0; // bit 49
330assign eq_tail_csrbus_read_data[50] = 1'b0; // bit 50
331assign eq_tail_csrbus_read_data[51] = 1'b0; // bit 51
332assign eq_tail_csrbus_read_data[52] = 1'b0; // bit 52
333assign eq_tail_csrbus_read_data[53] = 1'b0; // bit 53
334assign eq_tail_csrbus_read_data[54] = 1'b0; // bit 54
335assign eq_tail_csrbus_read_data[55] = 1'b0; // bit 55
336assign eq_tail_csrbus_read_data[56] = 1'b0; // bit 56
337// bit 57
338csr_sw csr_sw_57
339 (
340 // synopsys translate_off
341 .omni_ld (1'b0),
342 .omni_data (1'b0),
343 .omni_rw_alias (1'b0),
344 .omni_rw1c_alias (1'b0),
345 .omni_rw1s_alias (1'b0),
346 // synopsys translate_on
347 .rst (rst_l_active_high),
348 .rst_val (reset_overr[0]),
349 .csr_ld (1'b0),
350 .csr_data (1'b0),
351 .rw_alias (1'b0),
352 .rw1c_alias (1'b0),
353 .rw1s_alias (1'b0),
354 .hw_ld (eq_tail_overr_hw_ld),
355 .hw_data (eq_tail_overr_hw_write),
356 .cp (clk),
357 .q (eq_tail_csrbus_read_data[57])
358 );
359
360assign eq_tail_csrbus_read_data[58] = 1'b0; // bit 58
361assign eq_tail_csrbus_read_data[59] = 1'b0; // bit 59
362assign eq_tail_csrbus_read_data[60] = 1'b0; // bit 60
363assign eq_tail_csrbus_read_data[61] = 1'b0; // bit 61
364assign eq_tail_csrbus_read_data[62] = 1'b0; // bit 62
365assign eq_tail_csrbus_read_data[63] = 1'b0; // bit 63
366
367endmodule // dmu_imu_eqs_csr_eq_tail_entry