| 1 | // ========== Copyright Header Begin ========================================== |
| 2 | // |
| 3 | // OpenSPARC T2 Processor File: niu_pio_ldsv_decoder.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 ============================================ |
| 35 | /*%W% %G%*/ |
| 36 | |
| 37 | /***************************************************************** |
| 38 | * |
| 39 | * File Name : niu_pio_ldsv_decoder.v |
| 40 | * Author Name : John Lo |
| 41 | * Description : It contains PIO itslef read/write decoder, |
| 42 | * |
| 43 | * Parent Module: niu_pio_ldsv_decoder.v |
| 44 | * Child Module: |
| 45 | * Interface Mod: many. |
| 46 | * Date Created : 3/30/04 |
| 47 | * |
| 48 | * Copyright (c) 2020, Sun Microsystems, Inc. |
| 49 | * Sun Proprietary and Confidential |
| 50 | * |
| 51 | * Modification : |
| 52 | * |
| 53 | ****************************************************************/ |
| 54 | |
| 55 | module niu_pio_ldsv_decoder (/*AUTOARG*/ |
| 56 | // Outputs |
| 57 | ldsv_ack, ldsv_rdata, ldsv_err, |
| 58 | // Inputs |
| 59 | clk, ldsv_sel_reg, addr, rd, ldsv0grp0, ldsv1grp0, |
| 60 | ldsv2grp0, ldsv0grp1, ldsv1grp1, ldsv2grp1, ldsv0grp2, ldsv1grp2, |
| 61 | ldsv2grp2, ldsv0grp3, ldsv1grp3, ldsv2grp3, ldsv0grp4, ldsv1grp4, |
| 62 | ldsv2grp4, ldsv0grp5, ldsv1grp5, ldsv2grp5, ldsv0grp6, ldsv1grp6, |
| 63 | ldsv2grp6, ldsv0grp7, ldsv1grp7, ldsv2grp7, ldsv0grp8, ldsv1grp8, |
| 64 | ldsv2grp8, ldsv0grp9, ldsv1grp9, ldsv2grp9, ldsv0grp10, |
| 65 | ldsv1grp10, ldsv2grp10, ldsv0grp11, ldsv1grp11, ldsv2grp11, |
| 66 | ldsv0grp12, ldsv1grp12, ldsv2grp12, ldsv0grp13, ldsv1grp13, |
| 67 | ldsv2grp13, ldsv0grp14, ldsv1grp14, ldsv2grp14, ldsv0grp15, |
| 68 | ldsv1grp15, ldsv2grp15, ldsv0grp16, ldsv1grp16, ldsv2grp16, |
| 69 | ldsv0grp17, ldsv1grp17, ldsv2grp17, ldsv0grp18, ldsv1grp18, |
| 70 | ldsv2grp18, ldsv0grp19, ldsv1grp19, ldsv2grp19, ldsv0grp20, |
| 71 | ldsv1grp20, ldsv2grp20, ldsv0grp21, ldsv1grp21, ldsv2grp21, |
| 72 | ldsv0grp22, ldsv1grp22, ldsv2grp22, ldsv0grp23, ldsv1grp23, |
| 73 | ldsv2grp23, ldsv0grp24, ldsv1grp24, ldsv2grp24, ldsv0grp25, |
| 74 | ldsv1grp25, ldsv2grp25, ldsv0grp26, ldsv1grp26, ldsv2grp26, |
| 75 | ldsv0grp27, ldsv1grp27, ldsv2grp27, ldsv0grp28, ldsv1grp28, |
| 76 | ldsv2grp28, ldsv0grp29, ldsv1grp29, ldsv2grp29, ldsv0grp30, |
| 77 | ldsv1grp30, ldsv2grp30, ldsv0grp31, ldsv1grp31, ldsv2grp31, |
| 78 | ldsv0grp32, ldsv1grp32, ldsv2grp32, ldsv0grp33, ldsv1grp33, |
| 79 | ldsv2grp33, ldsv0grp34, ldsv1grp34, ldsv2grp34, ldsv0grp35, |
| 80 | ldsv1grp35, ldsv2grp35, ldsv0grp36, ldsv1grp36, ldsv2grp36, |
| 81 | ldsv0grp37, ldsv1grp37, ldsv2grp37, ldsv0grp38, ldsv1grp38, |
| 82 | ldsv2grp38, ldsv0grp39, ldsv1grp39, ldsv2grp39, ldsv0grp40, |
| 83 | ldsv1grp40, ldsv2grp40, ldsv0grp41, ldsv1grp41, ldsv2grp41, |
| 84 | ldsv0grp42, ldsv1grp42, ldsv2grp42, ldsv0grp43, ldsv1grp43, |
| 85 | ldsv2grp43, ldsv0grp44, ldsv1grp44, ldsv2grp44, ldsv0grp45, |
| 86 | ldsv1grp45, ldsv2grp45, ldsv0grp46, ldsv1grp46, ldsv2grp46, |
| 87 | ldsv0grp47, ldsv1grp47, ldsv2grp47, ldsv0grp48, ldsv1grp48, |
| 88 | ldsv2grp48, ldsv0grp49, ldsv1grp49, ldsv2grp49, ldsv0grp50, |
| 89 | ldsv1grp50, ldsv2grp50, ldsv0grp51, ldsv1grp51, ldsv2grp51, |
| 90 | ldsv0grp52, ldsv1grp52, ldsv2grp52, ldsv0grp53, ldsv1grp53, |
| 91 | ldsv2grp53, ldsv0grp54, ldsv1grp54, ldsv2grp54, ldsv0grp55, |
| 92 | ldsv1grp55, ldsv2grp55, ldsv0grp56, ldsv1grp56, ldsv2grp56, |
| 93 | ldsv0grp57, ldsv1grp57, ldsv2grp57, ldsv0grp58, ldsv1grp58, |
| 94 | ldsv2grp58, ldsv0grp59, ldsv1grp59, ldsv2grp59, ldsv0grp60, |
| 95 | ldsv1grp60, ldsv2grp60, ldsv0grp61, ldsv1grp61, ldsv2grp61, |
| 96 | ldsv0grp62, ldsv1grp62, ldsv2grp62, ldsv0grp63, ldsv1grp63, |
| 97 | ldsv2grp63 |
| 98 | ); |
| 99 | input clk; |
| 100 | input ldsv_sel_reg; |
| 101 | // pio broadcast signals |
| 102 | input [18:0] addr; |
| 103 | input rd; |
| 104 | input [63:0] ldsv0grp0 ; |
| 105 | input [63:0] ldsv1grp0 ; |
| 106 | input [63:0] ldsv2grp0 ; |
| 107 | input [63:0] ldsv0grp1 ; |
| 108 | input [63:0] ldsv1grp1 ; |
| 109 | input [63:0] ldsv2grp1 ; |
| 110 | input [63:0] ldsv0grp2 ; |
| 111 | input [63:0] ldsv1grp2 ; |
| 112 | input [63:0] ldsv2grp2 ; |
| 113 | input [63:0] ldsv0grp3 ; |
| 114 | input [63:0] ldsv1grp3 ; |
| 115 | input [63:0] ldsv2grp3 ; |
| 116 | input [63:0] ldsv0grp4 ; |
| 117 | input [63:0] ldsv1grp4 ; |
| 118 | input [63:0] ldsv2grp4 ; |
| 119 | input [63:0] ldsv0grp5 ; |
| 120 | input [63:0] ldsv1grp5 ; |
| 121 | input [63:0] ldsv2grp5 ; |
| 122 | input [63:0] ldsv0grp6 ; |
| 123 | input [63:0] ldsv1grp6 ; |
| 124 | input [63:0] ldsv2grp6 ; |
| 125 | input [63:0] ldsv0grp7 ; |
| 126 | input [63:0] ldsv1grp7 ; |
| 127 | input [63:0] ldsv2grp7 ; |
| 128 | input [63:0] ldsv0grp8 ; |
| 129 | input [63:0] ldsv1grp8 ; |
| 130 | input [63:0] ldsv2grp8 ; |
| 131 | input [63:0] ldsv0grp9 ; |
| 132 | input [63:0] ldsv1grp9 ; |
| 133 | input [63:0] ldsv2grp9 ; |
| 134 | input [63:0] ldsv0grp10; |
| 135 | input [63:0] ldsv1grp10; |
| 136 | input [63:0] ldsv2grp10; |
| 137 | input [63:0] ldsv0grp11; |
| 138 | input [63:0] ldsv1grp11; |
| 139 | input [63:0] ldsv2grp11; |
| 140 | input [63:0] ldsv0grp12; |
| 141 | input [63:0] ldsv1grp12; |
| 142 | input [63:0] ldsv2grp12; |
| 143 | input [63:0] ldsv0grp13; |
| 144 | input [63:0] ldsv1grp13; |
| 145 | input [63:0] ldsv2grp13; |
| 146 | input [63:0] ldsv0grp14; |
| 147 | input [63:0] ldsv1grp14; |
| 148 | input [63:0] ldsv2grp14; |
| 149 | input [63:0] ldsv0grp15; |
| 150 | input [63:0] ldsv1grp15; |
| 151 | input [63:0] ldsv2grp15; |
| 152 | input [63:0] ldsv0grp16; |
| 153 | input [63:0] ldsv1grp16; |
| 154 | input [63:0] ldsv2grp16; |
| 155 | input [63:0] ldsv0grp17; |
| 156 | input [63:0] ldsv1grp17; |
| 157 | input [63:0] ldsv2grp17; |
| 158 | input [63:0] ldsv0grp18; |
| 159 | input [63:0] ldsv1grp18; |
| 160 | input [63:0] ldsv2grp18; |
| 161 | input [63:0] ldsv0grp19; |
| 162 | input [63:0] ldsv1grp19; |
| 163 | input [63:0] ldsv2grp19; |
| 164 | input [63:0] ldsv0grp20; |
| 165 | input [63:0] ldsv1grp20; |
| 166 | input [63:0] ldsv2grp20; |
| 167 | input [63:0] ldsv0grp21; |
| 168 | input [63:0] ldsv1grp21; |
| 169 | input [63:0] ldsv2grp21; |
| 170 | input [63:0] ldsv0grp22; |
| 171 | input [63:0] ldsv1grp22; |
| 172 | input [63:0] ldsv2grp22; |
| 173 | input [63:0] ldsv0grp23; |
| 174 | input [63:0] ldsv1grp23; |
| 175 | input [63:0] ldsv2grp23; |
| 176 | input [63:0] ldsv0grp24; |
| 177 | input [63:0] ldsv1grp24; |
| 178 | input [63:0] ldsv2grp24; |
| 179 | input [63:0] ldsv0grp25; |
| 180 | input [63:0] ldsv1grp25; |
| 181 | input [63:0] ldsv2grp25; |
| 182 | input [63:0] ldsv0grp26; |
| 183 | input [63:0] ldsv1grp26; |
| 184 | input [63:0] ldsv2grp26; |
| 185 | input [63:0] ldsv0grp27; |
| 186 | input [63:0] ldsv1grp27; |
| 187 | input [63:0] ldsv2grp27; |
| 188 | input [63:0] ldsv0grp28; |
| 189 | input [63:0] ldsv1grp28; |
| 190 | input [63:0] ldsv2grp28; |
| 191 | input [63:0] ldsv0grp29; |
| 192 | input [63:0] ldsv1grp29; |
| 193 | input [63:0] ldsv2grp29; |
| 194 | input [63:0] ldsv0grp30; |
| 195 | input [63:0] ldsv1grp30; |
| 196 | input [63:0] ldsv2grp30; |
| 197 | input [63:0] ldsv0grp31; |
| 198 | input [63:0] ldsv1grp31; |
| 199 | input [63:0] ldsv2grp31; |
| 200 | input [63:0] ldsv0grp32; |
| 201 | input [63:0] ldsv1grp32; |
| 202 | input [63:0] ldsv2grp32; |
| 203 | input [63:0] ldsv0grp33; |
| 204 | input [63:0] ldsv1grp33; |
| 205 | input [63:0] ldsv2grp33; |
| 206 | input [63:0] ldsv0grp34; |
| 207 | input [63:0] ldsv1grp34; |
| 208 | input [63:0] ldsv2grp34; |
| 209 | input [63:0] ldsv0grp35; |
| 210 | input [63:0] ldsv1grp35; |
| 211 | input [63:0] ldsv2grp35; |
| 212 | input [63:0] ldsv0grp36; |
| 213 | input [63:0] ldsv1grp36; |
| 214 | input [63:0] ldsv2grp36; |
| 215 | input [63:0] ldsv0grp37; |
| 216 | input [63:0] ldsv1grp37; |
| 217 | input [63:0] ldsv2grp37; |
| 218 | input [63:0] ldsv0grp38; |
| 219 | input [63:0] ldsv1grp38; |
| 220 | input [63:0] ldsv2grp38; |
| 221 | input [63:0] ldsv0grp39; |
| 222 | input [63:0] ldsv1grp39; |
| 223 | input [63:0] ldsv2grp39; |
| 224 | input [63:0] ldsv0grp40; |
| 225 | input [63:0] ldsv1grp40; |
| 226 | input [63:0] ldsv2grp40; |
| 227 | input [63:0] ldsv0grp41; |
| 228 | input [63:0] ldsv1grp41; |
| 229 | input [63:0] ldsv2grp41; |
| 230 | input [63:0] ldsv0grp42; |
| 231 | input [63:0] ldsv1grp42; |
| 232 | input [63:0] ldsv2grp42; |
| 233 | input [63:0] ldsv0grp43; |
| 234 | input [63:0] ldsv1grp43; |
| 235 | input [63:0] ldsv2grp43; |
| 236 | input [63:0] ldsv0grp44; |
| 237 | input [63:0] ldsv1grp44; |
| 238 | input [63:0] ldsv2grp44; |
| 239 | input [63:0] ldsv0grp45; |
| 240 | input [63:0] ldsv1grp45; |
| 241 | input [63:0] ldsv2grp45; |
| 242 | input [63:0] ldsv0grp46; |
| 243 | input [63:0] ldsv1grp46; |
| 244 | input [63:0] ldsv2grp46; |
| 245 | input [63:0] ldsv0grp47; |
| 246 | input [63:0] ldsv1grp47; |
| 247 | input [63:0] ldsv2grp47; |
| 248 | input [63:0] ldsv0grp48; |
| 249 | input [63:0] ldsv1grp48; |
| 250 | input [63:0] ldsv2grp48; |
| 251 | input [63:0] ldsv0grp49; |
| 252 | input [63:0] ldsv1grp49; |
| 253 | input [63:0] ldsv2grp49; |
| 254 | input [63:0] ldsv0grp50; |
| 255 | input [63:0] ldsv1grp50; |
| 256 | input [63:0] ldsv2grp50; |
| 257 | input [63:0] ldsv0grp51; |
| 258 | input [63:0] ldsv1grp51; |
| 259 | input [63:0] ldsv2grp51; |
| 260 | input [63:0] ldsv0grp52; |
| 261 | input [63:0] ldsv1grp52; |
| 262 | input [63:0] ldsv2grp52; |
| 263 | input [63:0] ldsv0grp53; |
| 264 | input [63:0] ldsv1grp53; |
| 265 | input [63:0] ldsv2grp53; |
| 266 | input [63:0] ldsv0grp54; |
| 267 | input [63:0] ldsv1grp54; |
| 268 | input [63:0] ldsv2grp54; |
| 269 | input [63:0] ldsv0grp55; |
| 270 | input [63:0] ldsv1grp55; |
| 271 | input [63:0] ldsv2grp55; |
| 272 | input [63:0] ldsv0grp56; |
| 273 | input [63:0] ldsv1grp56; |
| 274 | input [63:0] ldsv2grp56; |
| 275 | input [63:0] ldsv0grp57; |
| 276 | input [63:0] ldsv1grp57; |
| 277 | input [63:0] ldsv2grp57; |
| 278 | input [63:0] ldsv0grp58; |
| 279 | input [63:0] ldsv1grp58; |
| 280 | input [63:0] ldsv2grp58; |
| 281 | input [63:0] ldsv0grp59; |
| 282 | input [63:0] ldsv1grp59; |
| 283 | input [63:0] ldsv2grp59; |
| 284 | input [63:0] ldsv0grp60; |
| 285 | input [63:0] ldsv1grp60; |
| 286 | input [63:0] ldsv2grp60; |
| 287 | input [63:0] ldsv0grp61; |
| 288 | input [63:0] ldsv1grp61; |
| 289 | input [63:0] ldsv2grp61; |
| 290 | input [63:0] ldsv0grp62; |
| 291 | input [63:0] ldsv1grp62; |
| 292 | input [63:0] ldsv2grp62; |
| 293 | input [63:0] ldsv0grp63; |
| 294 | input [63:0] ldsv1grp63; |
| 295 | input [63:0] ldsv2grp63; |
| 296 | |
| 297 | output ldsv_ack; |
| 298 | output [63:0] ldsv_rdata; |
| 299 | output ldsv_err; |
| 300 | |
| 301 | // common reg declaration |
| 302 | reg [63:0] rd_data; |
| 303 | reg non_qualified_addr_err; |
| 304 | // common wrie declaration |
| 305 | wire [63:0] ldsv_rdata; |
| 306 | wire rd_en; |
| 307 | wire wr_en; |
| 308 | wire rasr; |
| 309 | // output reg declaration |
| 310 | |
| 311 | niu_rw_ctl ldsv_rw_ctl( |
| 312 | // Outputs |
| 313 | .wr_en (wr_en), |
| 314 | .rd_en (rd_en), |
| 315 | .ack (ldsv_ack), |
| 316 | .rdata (ldsv_rdata[63:0]), |
| 317 | .err (ldsv_err), |
| 318 | .rasr (rasr), |
| 319 | // Inputs |
| 320 | .clk (clk), |
| 321 | .sel (ldsv_sel_reg), |
| 322 | .rd (rd), |
| 323 | .rd_data (rd_data[63:0]), |
| 324 | .non_qualified_addr_err(non_qualified_addr_err)); |
| 325 | |
| 326 | always @ (/*AUTOSENSE*/addr or ldsv0grp0 or ldsv0grp1 or ldsv0grp10 |
| 327 | or ldsv0grp11 or ldsv0grp12 or ldsv0grp13 or ldsv0grp14 |
| 328 | or ldsv0grp15 or ldsv0grp16 or ldsv0grp17 or ldsv0grp18 |
| 329 | or ldsv0grp19 or ldsv0grp2 or ldsv0grp20 or ldsv0grp21 |
| 330 | or ldsv0grp22 or ldsv0grp23 or ldsv0grp24 or ldsv0grp25 |
| 331 | or ldsv0grp26 or ldsv0grp27 or ldsv0grp28 or ldsv0grp29 |
| 332 | or ldsv0grp3 or ldsv0grp30 or ldsv0grp31 or ldsv0grp32 |
| 333 | or ldsv0grp33 or ldsv0grp34 or ldsv0grp35 or ldsv0grp36 |
| 334 | or ldsv0grp37 or ldsv0grp38 or ldsv0grp39 or ldsv0grp4 |
| 335 | or ldsv0grp40 or ldsv0grp41 or ldsv0grp42 or ldsv0grp43 |
| 336 | or ldsv0grp44 or ldsv0grp45 or ldsv0grp46 or ldsv0grp47 |
| 337 | or ldsv0grp48 or ldsv0grp49 or ldsv0grp5 or ldsv0grp50 |
| 338 | or ldsv0grp51 or ldsv0grp52 or ldsv0grp53 or ldsv0grp54 |
| 339 | or ldsv0grp55 or ldsv0grp56 or ldsv0grp57 or ldsv0grp58 |
| 340 | or ldsv0grp59 or ldsv0grp6 or ldsv0grp60 or ldsv0grp61 |
| 341 | or ldsv0grp62 or ldsv0grp63 or ldsv0grp7 or ldsv0grp8 |
| 342 | or ldsv0grp9 or ldsv1grp0 or ldsv1grp1 or ldsv1grp10 |
| 343 | or ldsv1grp11 or ldsv1grp12 or ldsv1grp13 or ldsv1grp14 |
| 344 | or ldsv1grp15 or ldsv1grp16 or ldsv1grp17 or ldsv1grp18 |
| 345 | or ldsv1grp19 or ldsv1grp2 or ldsv1grp20 or ldsv1grp21 |
| 346 | or ldsv1grp22 or ldsv1grp23 or ldsv1grp24 or ldsv1grp25 |
| 347 | or ldsv1grp26 or ldsv1grp27 or ldsv1grp28 or ldsv1grp29 |
| 348 | or ldsv1grp3 or ldsv1grp30 or ldsv1grp31 or ldsv1grp32 |
| 349 | or ldsv1grp33 or ldsv1grp34 or ldsv1grp35 or ldsv1grp36 |
| 350 | or ldsv1grp37 or ldsv1grp38 or ldsv1grp39 or ldsv1grp4 |
| 351 | or ldsv1grp40 or ldsv1grp41 or ldsv1grp42 or ldsv1grp43 |
| 352 | or ldsv1grp44 or ldsv1grp45 or ldsv1grp46 or ldsv1grp47 |
| 353 | or ldsv1grp48 or ldsv1grp49 or ldsv1grp5 or ldsv1grp50 |
| 354 | or ldsv1grp51 or ldsv1grp52 or ldsv1grp53 or ldsv1grp54 |
| 355 | or ldsv1grp55 or ldsv1grp56 or ldsv1grp57 or ldsv1grp58 |
| 356 | or ldsv1grp59 or ldsv1grp6 or ldsv1grp60 or ldsv1grp61 |
| 357 | or ldsv1grp62 or ldsv1grp63 or ldsv1grp7 or ldsv1grp8 |
| 358 | or ldsv1grp9 or ldsv2grp0 or ldsv2grp1 or ldsv2grp10 |
| 359 | or ldsv2grp11 or ldsv2grp12 or ldsv2grp13 or ldsv2grp14 |
| 360 | or ldsv2grp15 or ldsv2grp16 or ldsv2grp17 or ldsv2grp18 |
| 361 | or ldsv2grp19 or ldsv2grp2 or ldsv2grp20 or ldsv2grp21 |
| 362 | or ldsv2grp22 or ldsv2grp23 or ldsv2grp24 or ldsv2grp25 |
| 363 | or ldsv2grp26 or ldsv2grp27 or ldsv2grp28 or ldsv2grp29 |
| 364 | or ldsv2grp3 or ldsv2grp30 or ldsv2grp31 or ldsv2grp32 |
| 365 | or ldsv2grp33 or ldsv2grp34 or ldsv2grp35 or ldsv2grp36 |
| 366 | or ldsv2grp37 or ldsv2grp38 or ldsv2grp39 or ldsv2grp4 |
| 367 | or ldsv2grp40 or ldsv2grp41 or ldsv2grp42 or ldsv2grp43 |
| 368 | or ldsv2grp44 or ldsv2grp45 or ldsv2grp46 or ldsv2grp47 |
| 369 | or ldsv2grp48 or ldsv2grp49 or ldsv2grp5 or ldsv2grp50 |
| 370 | or ldsv2grp51 or ldsv2grp52 or ldsv2grp53 or ldsv2grp54 |
| 371 | or ldsv2grp55 or ldsv2grp56 or ldsv2grp57 or ldsv2grp58 |
| 372 | or ldsv2grp59 or ldsv2grp6 or ldsv2grp60 or ldsv2grp61 |
| 373 | or ldsv2grp62 or ldsv2grp63 or ldsv2grp7 or ldsv2grp8 |
| 374 | or ldsv2grp9) |
| 375 | begin |
| 376 | non_qualified_addr_err = 0; |
| 377 | rd_data = 64'hdead_beef_dead_beef; |
| 378 | |
| 379 | case({addr[18:3],3'b0}) //synopsys parallel_case full_case infer_mux |
| 380 | // grp0 |
| 381 | 19'h0_0000: rd_data = ldsv0grp0; |
| 382 | 19'h0_0008: rd_data = ldsv1grp0; |
| 383 | 19'h0_0010: rd_data = ldsv2grp0; |
| 384 | // grp1 |
| 385 | 19'h0_2000: rd_data = ldsv0grp1; |
| 386 | 19'h0_2008: rd_data = ldsv1grp1; |
| 387 | 19'h0_2010: rd_data = ldsv2grp1; |
| 388 | // grp2 |
| 389 | 19'h0_4000: rd_data = ldsv0grp2; |
| 390 | 19'h0_4008: rd_data = ldsv1grp2; |
| 391 | 19'h0_4010: rd_data = ldsv2grp2; |
| 392 | // grp3 |
| 393 | 19'h0_6000: rd_data = ldsv0grp3; |
| 394 | 19'h0_6008: rd_data = ldsv1grp3; |
| 395 | 19'h0_6010: rd_data = ldsv2grp3; |
| 396 | // grp4 |
| 397 | 19'h0_8000: rd_data = ldsv0grp4; |
| 398 | 19'h0_8008: rd_data = ldsv1grp4; |
| 399 | 19'h0_8010: rd_data = ldsv2grp4; |
| 400 | // grp5 |
| 401 | 19'h0_a000: rd_data = ldsv0grp5; |
| 402 | 19'h0_a008: rd_data = ldsv1grp5; |
| 403 | 19'h0_a010: rd_data = ldsv2grp5; |
| 404 | // grp6 |
| 405 | 19'h0_c000: rd_data = ldsv0grp6; |
| 406 | 19'h0_c008: rd_data = ldsv1grp6; |
| 407 | 19'h0_c010: rd_data = ldsv2grp6; |
| 408 | // grp7 |
| 409 | 19'h0_e000: rd_data = ldsv0grp7; |
| 410 | 19'h0_e008: rd_data = ldsv1grp7; |
| 411 | 19'h0_e010: rd_data = ldsv2grp7; |
| 412 | // grp8 |
| 413 | 19'h1_0000: rd_data = ldsv0grp8; |
| 414 | 19'h1_0008: rd_data = ldsv1grp8; |
| 415 | 19'h1_0010: rd_data = ldsv2grp8; |
| 416 | // grp9 |
| 417 | 19'h1_2000: rd_data = ldsv0grp9; |
| 418 | 19'h1_2008: rd_data = ldsv1grp9; |
| 419 | 19'h1_2010: rd_data = ldsv2grp9; |
| 420 | // grp10 |
| 421 | 19'h1_4000: rd_data = ldsv0grp10; |
| 422 | 19'h1_4008: rd_data = ldsv1grp10; |
| 423 | 19'h1_4010: rd_data = ldsv2grp10; |
| 424 | // grp11 |
| 425 | 19'h1_6000: rd_data = ldsv0grp11; |
| 426 | 19'h1_6008: rd_data = ldsv1grp11; |
| 427 | 19'h1_6010: rd_data = ldsv2grp11; |
| 428 | // grp12 |
| 429 | 19'h1_8000: rd_data = ldsv0grp12; |
| 430 | 19'h1_8008: rd_data = ldsv1grp12; |
| 431 | 19'h1_8010: rd_data = ldsv2grp12; |
| 432 | // grp13 |
| 433 | 19'h1_a000: rd_data = ldsv0grp13; |
| 434 | 19'h1_a008: rd_data = ldsv1grp13; |
| 435 | 19'h1_a010: rd_data = ldsv2grp13; |
| 436 | // grp14 |
| 437 | 19'h1_c000: rd_data = ldsv0grp14; |
| 438 | 19'h1_c008: rd_data = ldsv1grp14; |
| 439 | 19'h1_c010: rd_data = ldsv2grp14; |
| 440 | // grp15 |
| 441 | 19'h1_e000: rd_data = ldsv0grp15; |
| 442 | 19'h1_e008: rd_data = ldsv1grp15; |
| 443 | 19'h1_e010: rd_data = ldsv2grp15; |
| 444 | // grp16 |
| 445 | 19'h2_0000: rd_data = ldsv0grp16; |
| 446 | 19'h2_0008: rd_data = ldsv1grp16; |
| 447 | 19'h2_0010: rd_data = ldsv2grp16; |
| 448 | // grp17 |
| 449 | 19'h2_2000: rd_data = ldsv0grp17; |
| 450 | 19'h2_2008: rd_data = ldsv1grp17; |
| 451 | 19'h2_2010: rd_data = ldsv2grp17; |
| 452 | // grp18 |
| 453 | 19'h2_4000: rd_data = ldsv0grp18; |
| 454 | 19'h2_4008: rd_data = ldsv1grp18; |
| 455 | 19'h2_4010: rd_data = ldsv2grp18; |
| 456 | // grp19 |
| 457 | 19'h2_6000: rd_data = ldsv0grp19; |
| 458 | 19'h2_6008: rd_data = ldsv1grp19; |
| 459 | 19'h2_6010: rd_data = ldsv2grp19; |
| 460 | // grp20 |
| 461 | 19'h2_8000: rd_data = ldsv0grp20; |
| 462 | 19'h2_8008: rd_data = ldsv1grp20; |
| 463 | 19'h2_8010: rd_data = ldsv2grp20; |
| 464 | // grp21 |
| 465 | 19'h2_a000: rd_data = ldsv0grp21; |
| 466 | 19'h2_a008: rd_data = ldsv1grp21; |
| 467 | 19'h2_a010: rd_data = ldsv2grp21; |
| 468 | // grp22 |
| 469 | 19'h2_c000: rd_data = ldsv0grp22; |
| 470 | 19'h2_c008: rd_data = ldsv1grp22; |
| 471 | 19'h2_c010: rd_data = ldsv2grp22; |
| 472 | // grp23 |
| 473 | 19'h2_e000: rd_data = ldsv0grp23; |
| 474 | 19'h2_e008: rd_data = ldsv1grp23; |
| 475 | 19'h2_e010: rd_data = ldsv2grp23; |
| 476 | // grp24 |
| 477 | 19'h3_0000: rd_data = ldsv0grp24; |
| 478 | 19'h3_0008: rd_data = ldsv1grp24; |
| 479 | 19'h3_0010: rd_data = ldsv2grp24; |
| 480 | // grp25 |
| 481 | 19'h3_2000: rd_data = ldsv0grp25; |
| 482 | 19'h3_2008: rd_data = ldsv1grp25; |
| 483 | 19'h3_2010: rd_data = ldsv2grp25; |
| 484 | // grp26 |
| 485 | 19'h3_4000: rd_data = ldsv0grp26; |
| 486 | 19'h3_4008: rd_data = ldsv1grp26; |
| 487 | 19'h3_4010: rd_data = ldsv2grp26; |
| 488 | // grp27 |
| 489 | 19'h3_6000: rd_data = ldsv0grp27; |
| 490 | 19'h3_6008: rd_data = ldsv1grp27; |
| 491 | 19'h3_6010: rd_data = ldsv2grp27; |
| 492 | // grp28 |
| 493 | 19'h3_8000: rd_data = ldsv0grp28; |
| 494 | 19'h3_8008: rd_data = ldsv1grp28; |
| 495 | 19'h3_8010: rd_data = ldsv2grp28; |
| 496 | // grp29 |
| 497 | 19'h3_a000: rd_data = ldsv0grp29; |
| 498 | 19'h3_a008: rd_data = ldsv1grp29; |
| 499 | 19'h3_a010: rd_data = ldsv2grp29; |
| 500 | // grp30 |
| 501 | 19'h3_c000: rd_data = ldsv0grp30; |
| 502 | 19'h3_c008: rd_data = ldsv1grp30; |
| 503 | 19'h3_c010: rd_data = ldsv2grp30; |
| 504 | // grp31 |
| 505 | 19'h3_e000: rd_data = ldsv0grp31; |
| 506 | 19'h3_e008: rd_data = ldsv1grp31; |
| 507 | 19'h3_e010: rd_data = ldsv2grp31; |
| 508 | // grp32 |
| 509 | 19'h4_0000: rd_data = ldsv0grp32; |
| 510 | 19'h4_0008: rd_data = ldsv1grp32; |
| 511 | 19'h4_0010: rd_data = ldsv2grp32; |
| 512 | // grp33 |
| 513 | 19'h4_2000: rd_data = ldsv0grp33; |
| 514 | 19'h4_2008: rd_data = ldsv1grp33; |
| 515 | 19'h4_2010: rd_data = ldsv2grp33; |
| 516 | // grp34 |
| 517 | 19'h4_4000: rd_data = ldsv0grp34; |
| 518 | 19'h4_4008: rd_data = ldsv1grp34; |
| 519 | 19'h4_4010: rd_data = ldsv2grp34; |
| 520 | // grp35 |
| 521 | 19'h4_6000: rd_data = ldsv0grp35; |
| 522 | 19'h4_6008: rd_data = ldsv1grp35; |
| 523 | 19'h4_6010: rd_data = ldsv2grp35; |
| 524 | // grp36 |
| 525 | 19'h4_8000: rd_data = ldsv0grp36; |
| 526 | 19'h4_8008: rd_data = ldsv1grp36; |
| 527 | 19'h4_8010: rd_data = ldsv2grp36; |
| 528 | // grp37 |
| 529 | 19'h4_a000: rd_data = ldsv0grp37; |
| 530 | 19'h4_a008: rd_data = ldsv1grp37; |
| 531 | 19'h4_a010: rd_data = ldsv2grp37; |
| 532 | // grp38 |
| 533 | 19'h4_c000: rd_data = ldsv0grp38; |
| 534 | 19'h4_c008: rd_data = ldsv1grp38; |
| 535 | 19'h4_c010: rd_data = ldsv2grp38; |
| 536 | // grp39 |
| 537 | 19'h4_e000: rd_data = ldsv0grp39; |
| 538 | 19'h4_e008: rd_data = ldsv1grp39; |
| 539 | 19'h4_e010: rd_data = ldsv2grp39; |
| 540 | // grp40 |
| 541 | 19'h5_0000: rd_data = ldsv0grp40; |
| 542 | 19'h5_0008: rd_data = ldsv1grp40; |
| 543 | 19'h5_0010: rd_data = ldsv2grp40; |
| 544 | // grp41 |
| 545 | 19'h5_2000: rd_data = ldsv0grp41; |
| 546 | 19'h5_2008: rd_data = ldsv1grp41; |
| 547 | 19'h5_2010: rd_data = ldsv2grp41; |
| 548 | // grp42 |
| 549 | 19'h5_4000: rd_data = ldsv0grp42; |
| 550 | 19'h5_4008: rd_data = ldsv1grp42; |
| 551 | 19'h5_4010: rd_data = ldsv2grp42; |
| 552 | // grp43 |
| 553 | 19'h5_6000: rd_data = ldsv0grp43; |
| 554 | 19'h5_6008: rd_data = ldsv1grp43; |
| 555 | 19'h5_6010: rd_data = ldsv2grp43; |
| 556 | // grp44 |
| 557 | 19'h5_8000: rd_data = ldsv0grp44; |
| 558 | 19'h5_8008: rd_data = ldsv1grp44; |
| 559 | 19'h5_8010: rd_data = ldsv2grp44; |
| 560 | // grp45 |
| 561 | 19'h5_a000: rd_data = ldsv0grp45; |
| 562 | 19'h5_a008: rd_data = ldsv1grp45; |
| 563 | 19'h5_a010: rd_data = ldsv2grp45; |
| 564 | // grp46 |
| 565 | 19'h5_c000: rd_data = ldsv0grp46; |
| 566 | 19'h5_c008: rd_data = ldsv1grp46; |
| 567 | 19'h5_c010: rd_data = ldsv2grp46; |
| 568 | // grp47 |
| 569 | 19'h5_e000: rd_data = ldsv0grp47; |
| 570 | 19'h5_e008: rd_data = ldsv1grp47; |
| 571 | 19'h5_e010: rd_data = ldsv2grp47; |
| 572 | // grp48 |
| 573 | 19'h6_0000: rd_data = ldsv0grp48; |
| 574 | 19'h6_0008: rd_data = ldsv1grp48; |
| 575 | 19'h6_0010: rd_data = ldsv2grp48; |
| 576 | // grp49 |
| 577 | 19'h6_2000: rd_data = ldsv0grp49; |
| 578 | 19'h6_2008: rd_data = ldsv1grp49; |
| 579 | 19'h6_2010: rd_data = ldsv2grp49; |
| 580 | // grp50 |
| 581 | 19'h6_4000: rd_data = ldsv0grp50; |
| 582 | 19'h6_4008: rd_data = ldsv1grp50; |
| 583 | 19'h6_4010: rd_data = ldsv2grp50; |
| 584 | // grp51 |
| 585 | 19'h6_6000: rd_data = ldsv0grp51; |
| 586 | 19'h6_6008: rd_data = ldsv1grp51; |
| 587 | 19'h6_6010: rd_data = ldsv2grp51; |
| 588 | // grp52 |
| 589 | 19'h6_8000: rd_data = ldsv0grp52; |
| 590 | 19'h6_8008: rd_data = ldsv1grp52; |
| 591 | 19'h6_8010: rd_data = ldsv2grp52; |
| 592 | // grp53 |
| 593 | 19'h6_a000: rd_data = ldsv0grp53; |
| 594 | 19'h6_a008: rd_data = ldsv1grp53; |
| 595 | 19'h6_a010: rd_data = ldsv2grp53; |
| 596 | // grp54 |
| 597 | 19'h6_c000: rd_data = ldsv0grp54; |
| 598 | 19'h6_c008: rd_data = ldsv1grp54; |
| 599 | 19'h6_c010: rd_data = ldsv2grp54; |
| 600 | // grp55 |
| 601 | 19'h6_e000: rd_data = ldsv0grp55; |
| 602 | 19'h6_e008: rd_data = ldsv1grp55; |
| 603 | 19'h6_e010: rd_data = ldsv2grp55; |
| 604 | // grp56 |
| 605 | 19'h7_0000: rd_data = ldsv0grp56; |
| 606 | 19'h7_0008: rd_data = ldsv1grp56; |
| 607 | 19'h7_0010: rd_data = ldsv2grp56; |
| 608 | // grp57 |
| 609 | 19'h7_2000: rd_data = ldsv0grp57; |
| 610 | 19'h7_2008: rd_data = ldsv1grp57; |
| 611 | 19'h7_2010: rd_data = ldsv2grp57; |
| 612 | // grp58 |
| 613 | 19'h7_4000: rd_data = ldsv0grp58; |
| 614 | 19'h7_4008: rd_data = ldsv1grp58; |
| 615 | 19'h7_4010: rd_data = ldsv2grp58; |
| 616 | // grp59 |
| 617 | 19'h7_6000: rd_data = ldsv0grp59; |
| 618 | 19'h7_6008: rd_data = ldsv1grp59; |
| 619 | 19'h7_6010: rd_data = ldsv2grp59; |
| 620 | // grp60 |
| 621 | 19'h7_8000: rd_data = ldsv0grp60; |
| 622 | 19'h7_8008: rd_data = ldsv1grp60; |
| 623 | 19'h7_8010: rd_data = ldsv2grp60; |
| 624 | // grp61 |
| 625 | 19'h7_a000: rd_data = ldsv0grp61; |
| 626 | 19'h7_a008: rd_data = ldsv1grp61; |
| 627 | 19'h7_a010: rd_data = ldsv2grp61; |
| 628 | // grp62 |
| 629 | 19'h7_c000: rd_data = ldsv0grp62; |
| 630 | 19'h7_c008: rd_data = ldsv1grp62; |
| 631 | 19'h7_c010: rd_data = ldsv2grp62; |
| 632 | // grp63 |
| 633 | 19'h7_e000: rd_data = ldsv0grp63; |
| 634 | 19'h7_e008: rd_data = ldsv1grp63; |
| 635 | 19'h7_e010: rd_data = ldsv2grp63; |
| 636 | |
| 637 | default: begin |
| 638 | rd_data = 64'hdead_beef_dead_beef; |
| 639 | non_qualified_addr_err = 1; |
| 640 | end // case: default |
| 641 | endcase // case({addr[18:3],3'b0}) |
| 642 | end // always @ (... |
| 643 | |
| 644 | endmodule // niu_pio_ldsv_decoder |