1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367
|
module example_2b;
parameter
in_width = 50,
patterns = 10,
out_width = 60,
step = 200,
// 0 no monitor, 1 - monitor, 2 - end of period strobe
mon_flag = 1;
mod1 cct(o1, o2, o3, o4, o5, o6, o7, o8, o9, o10,
o11, o12, o13, o14, o15, o16, o17, o18, o19, o20,
o21, o22, o23, o24, o25, o26, o27, o28, o29, o30,
o31, o32, o33, o34, o35, o36, o37, o38, o39, o40,
o41, o42, o43, o44, o45, o46, o47, o48, o49, o50,
o51, o52, o53, o54, o55, o56, o57, o58, o59, o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct1(m1_o1, m1_o2, m1_o3, m1_o4, m1_o5, m1_o6, m1_o7, m1_o8, m1_o9, m1_o10,
m1_o11, m1_o12, m1_o13, m1_o14, m1_o15, m1_o16, m1_o17, m1_o18, m1_o19, m1_o20,
m1_o21, m1_o22, m1_o23, m1_o24, m1_o25, m1_o26, m1_o27, m1_o28, m1_o29, m1_o30,
m1_o31, m1_o32, m1_o33, m1_o34, m1_o35, m1_o36, m1_o37, m1_o38, m1_o39, m1_o40,
m1_o41, m1_o42, m1_o43, m1_o44, m1_o45, m1_o46, m1_o47, m1_o48, m1_o49, m1_o50,
m1_o51, m1_o52, m1_o53, m1_o54, m1_o55, m1_o56, m1_o57, m1_o58, m1_o59, m1_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct2(m2_o1, m2_o2, m2_o3, m2_o4, m2_o5, m2_o6, m2_o7, m2_o8, m2_o9, m2_o10,
m2_o11, m2_o12, m2_o13, m2_o14, m2_o15, m2_o16, m2_o17, m2_o18, m2_o19, m2_o20,
m2_o21, m2_o22, m2_o23, m2_o24, m2_o25, m2_o26, m2_o27, m2_o28, m2_o29, m2_o30,
m2_o31, m2_o32, m2_o33, m2_o34, m2_o35, m2_o36, m2_o37, m2_o38, m2_o39, m2_o40,
m2_o41, m2_o42, m2_o43, m2_o44, m2_o45, m2_o46, m2_o47, m2_o48, m2_o49, m2_o50,
m2_o51, m2_o52, m2_o53, m2_o54, m2_o55, m2_o56, m2_o57, m2_o58, m2_o59, m2_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct3(m3_o1, m3_o2, m3_o3, m3_o4, m3_o5, m3_o6, m3_o7, m3_o8, m3_o9, m3_o10,
m3_o11, m3_o12, m3_o13, m3_o14, m3_o15, m3_o16, m3_o17, m3_o18, m3_o19, m3_o20,
m3_o21, m3_o22, m3_o23, m3_o24, m3_o25, m3_o26, m3_o27, m3_o28, m3_o29, m3_o30,
m3_o31, m3_o32, m3_o33, m3_o34, m3_o35, m3_o36, m3_o37, m3_o38, m3_o39, m3_o40,
m3_o41, m3_o42, m3_o43, m3_o44, m3_o45, m3_o46, m3_o47, m3_o48, m3_o49, m3_o50,
m3_o51, m3_o52, m3_o53, m3_o54, m3_o55, m3_o56, m3_o57, m3_o58, m3_o59, m3_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct4(m4_o1, m4_o2, m4_o3, m4_o4, m4_o5, m4_o6, m4_o7, m4_o8, m4_o9, m4_o10,
m4_o11, m4_o12, m4_o13, m4_o14, m4_o15, m4_o16, m4_o17, m4_o18, m4_o19, m4_o20,
m4_o21, m4_o22, m4_o23, m4_o24, m4_o25, m4_o26, m4_o27, m4_o28, m4_o29, m4_o30,
m4_o31, m4_o32, m4_o33, m4_o34, m4_o35, m4_o36, m4_o37, m4_o38, m4_o39, m4_o40,
m4_o41, m4_o42, m4_o43, m4_o44, m4_o45, m4_o46, m4_o47, m4_o48, m4_o49, m4_o50,
m4_o51, m4_o52, m4_o53, m4_o54, m4_o55, m4_o56, m4_o57, m4_o58, m4_o59, m4_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct5(m5_o1, m5_o2, m5_o3, m5_o4, m5_o5, m5_o6, m5_o7, m5_o8, m5_o9, m5_o10,
m5_o11, m5_o12, m5_o13, m5_o14, m5_o15, m5_o16, m5_o17, m5_o18, m5_o19, m5_o20,
m5_o21, m5_o22, m5_o23, m5_o24, m5_o25, m5_o26, m5_o27, m5_o28, m5_o29, m5_o30,
m5_o31, m5_o32, m5_o33, m5_o34, m5_o35, m5_o36, m5_o37, m5_o38, m5_o39, m5_o40,
m5_o41, m5_o42, m5_o43, m5_o44, m5_o45, m5_o46, m5_o47, m5_o48, m5_o49, m5_o50,
m5_o51, m5_o52, m5_o53, m5_o54, m5_o55, m5_o56, m5_o57, m5_o58, m5_o59, m5_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct6(m6_o1, m6_o2, m6_o3, m6_o4, m6_o5, m6_o6, m6_o7, m6_o8, m6_o9, m6_o10,
m6_o11, m6_o12, m6_o13, m6_o14, m6_o15, m6_o16, m6_o17, m6_o18, m6_o19, m6_o20,
m6_o21, m6_o22, m6_o23, m6_o24, m6_o25, m6_o26, m6_o27, m6_o28, m6_o29, m6_o30,
m6_o31, m6_o32, m6_o33, m6_o34, m6_o35, m6_o36, m6_o37, m6_o38, m6_o39, m6_o40,
m6_o41, m6_o42, m6_o43, m6_o44, m6_o45, m6_o46, m6_o47, m6_o48, m6_o49, m6_o50,
m6_o51, m6_o52, m6_o53, m6_o54, m6_o55, m6_o56, m6_o57, m6_o58, m6_o59, m6_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct7(m7_o1, m7_o2, m7_o3, m7_o4, m7_o5, m7_o6, m7_o7, m7_o8, m7_o9, m7_o10,
m7_o11, m7_o12, m7_o13, m7_o14, m7_o15, m7_o16, m7_o17, m7_o18, m7_o19, m7_o20,
m7_o21, m7_o22, m7_o23, m7_o24, m7_o25, m7_o26, m7_o27, m7_o28, m7_o29, m7_o30,
m7_o31, m7_o32, m7_o33, m7_o34, m7_o35, m7_o36, m7_o37, m7_o38, m7_o39, m7_o40,
m7_o41, m7_o42, m7_o43, m7_o44, m7_o45, m7_o46, m7_o47, m7_o48, m7_o49, m7_o50,
m7_o51, m7_o52, m7_o53, m7_o54, m7_o55, m7_o56, m7_o57, m7_o58, m7_o59, m7_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct8(m8_o1, m8_o2, m8_o3, m8_o4, m8_o5, m8_o6, m8_o7, m8_o8, m8_o9, m8_o10,
m8_o11, m8_o12, m8_o13, m8_o14, m8_o15, m8_o16, m8_o17, m8_o18, m8_o19, m8_o20,
m8_o21, m8_o22, m8_o23, m8_o24, m8_o25, m8_o26, m8_o27, m8_o28, m8_o29, m8_o30,
m8_o31, m8_o32, m8_o33, m8_o34, m8_o35, m8_o36, m8_o37, m8_o38, m8_o39, m8_o40,
m8_o41, m8_o42, m8_o43, m8_o44, m8_o45, m8_o46, m8_o47, m8_o48, m8_o49, m8_o50,
m8_o51, m8_o52, m8_o53, m8_o54, m8_o55, m8_o56, m8_o57, m8_o58, m8_o59, m8_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
mod1 cct9(m9_o1, m9_o2, m9_o3, m9_o4, m9_o5, m9_o6, m9_o7, m9_o8, m9_o9, m9_o10,
m9_o11, m9_o12, m9_o13, m9_o14, m9_o15, m9_o16, m9_o17, m9_o18, m9_o19, m9_o20,
m9_o21, m9_o22, m9_o23, m9_o24, m9_o25, m9_o26, m9_o27, m9_o28, m9_o29, m9_o30,
m9_o31, m9_o32, m9_o33, m9_o34, m9_o35, m9_o36, m9_o37, m9_o38, m9_o39, m9_o40,
m9_o41, m9_o42, m9_o43, m9_o44, m9_o45, m9_o46, m9_o47, m9_o48, m9_o49, m9_o50,
m9_o51, m9_o52, m9_o53, m9_o54, m9_o55, m9_o56, m9_o57, m9_o58, m9_o59, m9_o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
reg [1:in_width] in, in_mem[1:patterns];
integer index;
assign {
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50 }
= $getpattern(in_mem[index]);
// monitor control
initial
begin
if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m0) %h", in_mem[index],
{ o1, o2, o3, o4, o5, o6, o7, o8, o9, o10,
o11, o12, o13, o14, o15, o16, o17, o18, o19, o20,
o21, o22, o23, o24, o25, o26, o27, o28, o29, o30,
o31, o32, o33, o34, o35, o36, o37, o38, o39, o40,
o41, o42, o43, o44, o45, o46, o47, o48, o49, o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m1) %h", in_mem[index],
{m1_o1, m1_o2, m1_o3, m1_o4, m1_o5, m1_o6, m1_o7, m1_o8, m1_o9, m1_o10,
m1_o11, m1_o12, m1_o13, m1_o14, m1_o15, m1_o16, m1_o17, m1_o18, m1_o19,
m1_o20, m1_o21, m1_o22, m1_o23, m1_o24, m1_o25, m1_o26, m1_o27, m1_o28,
m1_o29, m1_o30, m1_o31, m1_o32, m1_o33, m1_o34, m1_o35, m1_o36, m1_o37,
m1_o38, m1_o39, m1_o40, m1_o41, m1_o42, m1_o43, m1_o44, m1_o45, m1_o46,
m1_o47, m1_o48, m1_o49, m1_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m2) %h", in_mem[index],
{m2_o1, m2_o2, m2_o3, m2_o4, m2_o5, m2_o6, m2_o7, m2_o8, m2_o9, m2_o10,
m2_o11, m2_o12, m2_o13, m2_o14, m2_o15, m2_o16, m2_o17, m2_o18, m2_o19,
m2_o20, m2_o21, m2_o22, m2_o23, m2_o24, m2_o25, m2_o26, m2_o27, m2_o28,
m2_o29, m2_o30, m2_o31, m2_o32, m2_o33, m2_o34, m2_o35, m2_o36, m2_o37,
m2_o38, m2_o39, m2_o40, m2_o41, m2_o42, m2_o43, m2_o44, m2_o45, m2_o46,
m2_o47, m2_o48, m2_o49, m2_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m3) %h", in_mem[index],
{m3_o1, m3_o2, m3_o3, m3_o4, m3_o5, m3_o6, m3_o7, m3_o8, m3_o9, m3_o10,
m3_o11, m3_o12, m3_o13, m3_o14, m3_o15, m3_o16, m3_o17, m3_o18, m3_o19,
m3_o20, m3_o21, m3_o22, m3_o23, m3_o24, m3_o25, m3_o26, m3_o27, m3_o28,
m3_o29, m3_o30, m3_o31, m3_o32, m3_o33, m3_o34, m3_o35, m3_o36, m3_o37,
m3_o38, m3_o39, m3_o40, m3_o41, m3_o42, m3_o43, m3_o44, m3_o45, m3_o46,
m3_o47, m3_o48, m3_o49, m3_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m4) %h", in_mem[index],
{m4_o1, m4_o2, m4_o3, m4_o4, m4_o5, m4_o6, m4_o7, m4_o8, m4_o9, m4_o10,
m4_o11, m4_o12, m4_o13, m4_o14, m4_o15, m4_o16, m4_o17, m4_o18, m4_o19,
m4_o20, m4_o21, m4_o22, m4_o23, m4_o24, m4_o25, m4_o26, m4_o27, m4_o28,
m4_o29, m4_o30, m4_o31, m4_o32, m4_o33, m4_o34, m4_o35, m4_o36, m4_o37,
m4_o38, m4_o39, m4_o40, m4_o41, m4_o42, m4_o43, m4_o44, m4_o45, m4_o46,
m4_o47, m4_o48, m4_o49, m4_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m5) %h", in_mem[index],
{m5_o1, m5_o2, m5_o3, m5_o4, m5_o5, m5_o6, m5_o7, m5_o8, m5_o9, m5_o10,
m5_o11, m5_o12, m5_o13, m5_o14, m5_o15, m5_o16, m5_o17, m5_o18, m5_o19,
m5_o20, m5_o21, m5_o22, m5_o23, m5_o24, m5_o25, m5_o26, m5_o27, m5_o28,
m5_o29, m5_o30, m5_o31, m5_o32, m5_o33, m5_o34, m5_o35, m5_o36, m5_o37,
m5_o38, m5_o39, m5_o40, m5_o41, m5_o42, m5_o43, m5_o44, m5_o45, m5_o46,
m5_o47, m5_o48, m5_o49, m5_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m6) %h", in_mem[index],
{m6_o1, m6_o2, m6_o3, m6_o4, m6_o5, m6_o6, m6_o7, m6_o8, m6_o9, m6_o10,
m6_o11, m6_o12, m6_o13, m6_o14, m6_o15, m6_o16, m6_o17, m6_o18, m6_o19,
m6_o20, m6_o21, m6_o22, m6_o23, m6_o24, m6_o25, m6_o26, m6_o27, m6_o28,
m6_o29, m6_o30, m6_o31, m6_o32, m6_o33, m6_o34, m6_o35, m6_o36, m6_o37,
m6_o38, m6_o39, m6_o40, m6_o41, m6_o42, m6_o43, m6_o44, m6_o45, m6_o46,
m6_o47, m6_o48, m6_o49, m6_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m7) %h", in_mem[index],
{m7_o1, m7_o2, m7_o3, m7_o4, m7_o5, m7_o6, m7_o7, m7_o8, m7_o9, m7_o10,
m7_o11, m7_o12, m7_o13, m7_o14, m7_o15, m7_o16, m7_o17, m7_o18, m7_o19,
m7_o20, m7_o21, m7_o22, m7_o23, m7_o24, m7_o25, m7_o26, m7_o27, m7_o28,
m7_o29, m7_o30, m7_o31, m7_o32, m7_o33, m7_o34, m7_o35, m7_o36, m7_o37,
m7_o38, m7_o39, m7_o40, m7_o41, m7_o42, m7_o43, m7_o44, m7_o45, m7_o46,
m7_o47, m7_o48, m7_o49, m7_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m8) %h", in_mem[index],
{m8_o1, m8_o2, m8_o3, m8_o4, m8_o5, m8_o6, m8_o7, m8_o8, m8_o9, m8_o10,
m8_o11, m8_o12, m8_o13, m8_o14, m8_o15, m8_o16, m8_o17, m8_o18, m8_o19,
m8_o20, m8_o21, m8_o22, m8_o23, m8_o24, m8_o25, m8_o26, m8_o27, m8_o28,
m8_o29, m8_o30, m8_o31, m8_o32, m8_o33, m8_o34, m8_o35, m8_o36, m8_o37,
m8_o38, m8_o39, m8_o40, m8_o41, m8_o42, m8_o43, m8_o44, m8_o45, m8_o46,
m8_o47, m8_o48, m8_o49, m8_o50 });
#((patterns*step)/10) if (mon_flag == 1)
$monitor($stime,, "input %h outputs(m9) %h", in_mem[index],
{m9_o1, m9_o2, m9_o3, m9_o4, m9_o5, m9_o6, m9_o7, m9_o8, m9_o9, m9_o10,
m9_o11, m9_o12, m9_o13, m9_o14, m9_o15, m9_o16, m9_o17, m9_o18, m9_o19,
m9_o20, m9_o21, m9_o22, m9_o23, m9_o24, m9_o25, m9_o26, m9_o27, m9_o28,
m9_o29, m9_o30, m9_o31, m9_o32, m9_o33, m9_o34, m9_o35, m9_o36, m9_o37,
m9_o38, m9_o39, m9_o40, m9_o41, m9_o42, m9_o43, m9_o44, m9_o45, m9_o46,
m9_o47, m9_o48, m9_o49, m9_o50 });
end
initial
begin
// $dumpvars;
$readmemb("gn.mem", in_mem, 1, patterns);
for (index = 1; index <= patterns; index = index + 1)
begin
fork
#(step/2)
if (mon_flag == 2)
case (10*$time/(patterns*step))
0: $strobe($stime,, "in=%h out(m0)=%h", in_mem[index],
{ o1, o2, o3, o4, o5, o6, o7, o8, o9, o10,
o11, o12, o13, o14, o15, o16, o17, o18, o19, o20,
o21, o22, o23, o24, o25, o26, o27, o28, o29, o30,
o31, o32, o33, o34, o35, o36, o37, o38, o39, o40,
o41, o42, o43, o44, o45, o46, o47, o48, o49, o50 });
1: $strobe($stime,, "in=%h out(m2)=%h", in_mem[index],
{m1_o1, m1_o2, m1_o3, m1_o4, m1_o5, m1_o6, m1_o7, m1_o8, m1_o9, m1_o10,
m1_o11, m1_o12, m1_o13, m1_o14, m1_o15, m1_o16, m1_o17, m1_o18, m1_o19,
m1_o20, m1_o21, m1_o22, m1_o23, m1_o24, m1_o25, m1_o26, m1_o27, m1_o28,
m1_o29, m1_o30, m1_o31, m1_o32, m1_o33, m1_o34, m1_o35, m1_o36, m1_o37,
m1_o38, m1_o39, m1_o40, m1_o41, m1_o42, m1_o43, m1_o44, m1_o45, m1_o46,
m1_o47, m1_o48, m1_o49, m1_o50 });
2: $strobe($stime,, "in=%h out(m2)=%h", in_mem[index],
{m2_o1, m2_o2, m2_o3, m2_o4, m2_o5, m2_o6, m2_o7, m2_o8, m2_o9, m2_o10,
m2_o11, m2_o12, m2_o13, m2_o14, m2_o15, m2_o16, m2_o17, m2_o18, m2_o19,
m2_o20, m2_o21, m2_o22, m2_o23, m2_o24, m2_o25, m2_o26, m2_o27, m2_o28,
m2_o29, m2_o30, m2_o31, m2_o32, m2_o33, m2_o34, m2_o35, m2_o36, m2_o37,
m2_o38, m2_o39, m2_o40, m2_o41, m2_o42, m2_o43, m2_o44, m2_o45, m2_o46,
m2_o47, m2_o48, m2_o49, m2_o50 });
3: $strobe($stime,, "in=%h out(m3)=%h", in_mem[index],
{m3_o1, m3_o2, m3_o3, m3_o4, m3_o5, m3_o6, m3_o7, m3_o8, m3_o9, m3_o10,
m3_o11, m3_o12, m3_o13, m3_o14, m3_o15, m3_o16, m3_o17, m3_o18, m3_o19,
m3_o20, m3_o21, m3_o22, m3_o23, m3_o24, m3_o25, m3_o26, m3_o27, m3_o28,
m3_o29, m3_o30, m3_o31, m3_o32, m3_o33, m3_o34, m3_o35, m3_o36, m3_o37,
m3_o38, m3_o39, m3_o40, m3_o41, m3_o42, m3_o43, m3_o44, m3_o45, m3_o46,
m3_o47, m3_o48, m3_o49, m3_o50 });
4: $strobe($stime,, "in=%h out(m4)=%h", in_mem[index],
{m4_o1, m4_o2, m4_o3, m4_o4, m4_o5, m4_o6, m4_o7, m4_o8, m4_o9, m4_o10,
m4_o11, m4_o12, m4_o13, m4_o14, m4_o15, m4_o16, m4_o17, m4_o18, m4_o19,
m4_o20, m4_o21, m4_o22, m4_o23, m4_o24, m4_o25, m4_o26, m4_o27, m4_o28,
m4_o29, m4_o30, m4_o31, m4_o32, m4_o33, m4_o34, m4_o35, m4_o36, m4_o37,
m4_o38, m4_o39, m4_o40, m4_o41, m4_o42, m4_o43, m4_o44, m4_o45, m4_o46,
m4_o47, m4_o48, m4_o49, m4_o50 });
5: $strobe($stime,, "in=%h out(m5)=%h", in_mem[index],
{m5_o1, m5_o2, m5_o3, m5_o4, m5_o5, m5_o6, m5_o7, m5_o8, m5_o9, m5_o10,
m5_o11, m5_o12, m5_o13, m5_o14, m5_o15, m5_o16, m5_o17, m5_o18, m5_o19,
m5_o20, m5_o21, m5_o22, m5_o23, m5_o24, m5_o25, m5_o26, m5_o27, m5_o28,
m5_o29, m5_o30, m5_o31, m5_o32, m5_o33, m5_o34, m5_o35, m5_o36, m5_o37,
m5_o38, m5_o39, m5_o40, m5_o41, m5_o42, m5_o43, m5_o44, m5_o45, m5_o46,
m5_o47, m5_o48, m5_o49, m5_o50 });
6: $strobe($stime,, "in=%h out(m6)=%h", in_mem[index],
{m6_o1, m6_o2, m6_o3, m6_o4, m6_o5, m6_o6, m6_o7, m6_o8, m6_o9, m6_o10,
m6_o11, m6_o12, m6_o13, m6_o14, m6_o15, m6_o16, m6_o17, m6_o18, m6_o19,
m6_o20, m6_o21, m6_o22, m6_o23, m6_o24, m6_o25, m6_o26, m6_o27, m6_o28,
m6_o29, m6_o30, m6_o31, m6_o32, m6_o33, m6_o34, m6_o35, m6_o36, m6_o37,
m6_o38, m6_o39, m6_o40, m6_o41, m6_o42, m6_o43, m6_o44, m6_o45, m6_o46,
m6_o47, m6_o48, m6_o49, m6_o50 });
7: $strobe($stime,, "in=%h out(m7)=%h", in_mem[index],
{m7_o1, m7_o2, m7_o3, m7_o4, m7_o5, m7_o6, m7_o7, m7_o8, m7_o9, m7_o10,
m7_o11, m7_o12, m7_o13, m7_o14, m7_o15, m7_o16, m7_o17, m7_o18, m7_o19,
m7_o20, m7_o21, m7_o22, m7_o23, m7_o24, m7_o25, m7_o26, m7_o27, m7_o28,
m7_o29, m7_o30, m7_o31, m7_o32, m7_o33, m7_o34, m7_o35, m7_o36, m7_o37,
m7_o38, m7_o39, m7_o40, m7_o41, m7_o42, m7_o43, m7_o44, m7_o45, m7_o46,
m7_o47, m7_o48, m7_o49, m7_o50 });
8: $strobe($stime,, "in=%h out(m8)=%h", in_mem[index],
{m8_o1, m8_o2, m8_o3, m8_o4, m8_o5, m8_o6, m8_o7, m8_o8, m8_o9, m8_o10,
m8_o11, m8_o12, m8_o13, m8_o14, m8_o15, m8_o16, m8_o17, m8_o18, m8_o19,
m8_o20, m8_o21, m8_o22, m8_o23, m8_o24, m8_o25, m8_o26, m8_o27, m8_o28,
m8_o29, m8_o30, m8_o31, m8_o32, m8_o33, m8_o34, m8_o35, m8_o36, m8_o37,
m8_o38, m8_o39, m8_o40, m8_o41, m8_o42, m8_o43, m8_o44, m8_o45, m8_o46,
m8_o47, m8_o48, m8_o49, m8_o50 });
9: $strobe($stime,, "in=%h out(m9)=%h", in_mem[index],
{m9_o1, m9_o2, m9_o3, m9_o4, m9_o5, m9_o6, m9_o7, m9_o8, m9_o9, m9_o10,
m9_o11, m9_o12, m9_o13, m9_o14, m9_o15, m9_o16, m9_o17, m9_o18, m9_o19,
m9_o20, m9_o21, m9_o22, m9_o23, m9_o24, m9_o25, m9_o26, m9_o27, m9_o28,
m9_o29, m9_o30, m9_o31, m9_o32, m9_o33, m9_o34, m9_o35, m9_o36, m9_o37,
m9_o38, m9_o39, m9_o40, m9_o41, m9_o42, m9_o43, m9_o44, m9_o45, m9_o46,
m9_o47, m9_o48, m9_o49, m9_o50 });
endcase
#step;
join
end
end
endmodule
module mod1(o1, o2, o3, o4, o5, o6, o7, o8, o9, o10,
o11, o12, o13, o14, o15, o16, o17, o18, o19, o20,
o21, o22, o23, o24, o25, o26, o27, o28, o29, o30,
o31, o32, o33, o34, o35, o36, o37, o38, o39, o40,
o41, o42, o43, o44, o45, o46, o47, o48, o49, o50,
o51, o52, o53, o54, o55, o56, o57, o58, o59, o60,
i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50);
output o1, o2, o3, o4, o5, o6, o7, o8, o9, o10,
o11, o12, o13, o14, o15, o16, o17, o18, o19, o20,
o21, o22, o23, o24, o25, o26, o27, o28, o29, o30,
o31, o32, o33, o34, o35, o36, o37, o38, o39, o40,
o41, o42, o43, o44, o45, o46, o47, o48, o49, o50,
o51, o52, o53, o54, o55, o56, o57, o58, o59, o60;
input i1, i2, i3, i4, i5, i6, i7, i8, i9, i10,
i11, i12, i13, i14, i15, i16, i17, i18, i19, i20,
i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
i31, i32, i33, i34, i35, i36, i37, i38, i39, i40,
i41, i42, i43, i44, i45, i46, i47, i48, i49, i50;
dmod
mi1(o1, i1), mi2(o2, i2), mi3(o3, i3), mi4(o4, i4),
mi5(o5, i5), mi6(o6, i6), mi7(o7, i7), mi8(o8, i8),
mi9(o9, i9), mi10(o10, i10), mi11(o11, i11), mi12(o12, i12),
mi13(o13, i13), mi14(o14, i14), mi15(o15, i15), mi16(o16, i16),
mi17(o17, i17), mi18(o18, i18), mi19(o19, i19), mi110(o20, i20),
mi21(o21, i21), mi22(o22, i22), mi23(o23, i23), mi24(o24, i24),
mi25(o25, i25), mi26(o26, i26), mi27(o27, i27), mi28(o28, i28),
mi29(o29, i29), mi30(o30, i30), mi31(o31, i31), mi32(o32, i32),
mi33(o33, i33), mi34(o34, i34), mi35(o35, i35), mi36(o36, i36),
mi37(o37, i37), mi38(o38, i38), mi39(o39, i39), mi40(o40, i40),
mi41(o41, i41), mi42(o42, i42), mi43(o43, i43), mi44(o44, i44),
mi45(o45, i45), mi46(o46, i46), mi47(o47, i47), mi48(o48, i48),
mi49(o49, i49), mi50(o50, i50),
mi51(o51, i1), mi52(o52, i2), mi53(o53, i3), mi54(o54, i4),
mi55(o55, i5), mi56(o56, i6), mi57(o57, i7), mi58(o58, i8),
mi59(o59, i9), mi60(o60, i10);
endmodule
/* odd number of nots - input inverted to output */
module dmod(o, i);
output o;
input i;
not #(5,3) g0(o, w1), g1(w1, w2), g2(w2, w3),
g3(w3, w4), g4(w4, w5), g5(w5, w6), g6(w6, w7), g7(w7, w8),
g8(w8, w9), g9(w9, w10), g10(w10, w11), g11(w11, w12), g12(w12, w13),
// notice broken chain
g13(w13, i), g14(w14, w15), g15(w15, w16), g16(w16, w17), g17(w17, w18),
g18(w18, w19), g19(w19, w20), g20(w20, w21), g21(w21, w22), g22(w22, i);
endmodule
|